Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions lib/libwdr.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,7 @@ def libWdrListVideos(self):
return libWdrRssAndroidParser.parseVideos(self.params['url'])

def libWdrListId(self):
print(f'https://www1.wdr.de/{self.params["id"]}~_format-mp111_type-rss.feed')
return libWdrRssParser.parseId(self.params['id'])
r#eturn libWdrRssParser.parseFeed(f'https://www1.wdr.de/{self.params["id"]}~_format-mp111_type-rss.feed')

def libWdrListFeed(self):
return libWdrRssParser.parseFeed(self.params['url'])
Expand All @@ -63,7 +61,6 @@ def libWdrListPodcast(self):

def libWdrSearch(self):
import libwdrhtmlparser as libWdrHtmlParser
#search_string = libMediathek.getSearchString()
return libWdrHtmlParser.parse("http://www1.wdr.de/mediathek/video/suche/avsuche100~suche_parentId-videosuche100.html?pageNumber=1&sort=date&q="+search_string)

def libWdrListSearch(self):
Expand All @@ -73,8 +70,10 @@ def libWdrListSearch(self):
def libWdrPlay(self):
if 'm3u8' in self.params:
return {'media':[{'url':self.params['m3u8'], 'type':'video', 'stream':'HLS'}]}
elif 'uservideomode' in self.params:
return libWdrParser.parseVideo(self.params['url'], self.params['uservideomode'])
else:
return libWdrParser.parseVideo(self.params['url'])
return libWdrParser.parseVideo(self.params['url'], 'none')

def libWdrPlayDirect(self):
import requests
Expand All @@ -86,6 +85,9 @@ def libWdrPlayNimex(self):
return libwdrnimex.getAudio(self.params['id'])

def libWdrPlayJs(self):
return libWdrParser.parseVideoJs(self.params['url'])
if 'uservideomode' in self.params:
return libWdrParser.parseVideoJs(self.params['url'], self.params['uservideomode'])
else:
return libWdrParser.parseVideoJs(self.params['url'], 'none')


12 changes: 7 additions & 5 deletions lib/libwdrparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
base = 'http://www1.wdr.de'


def parseVideo(url,signLang=False):
def parseVideo(url,viewerMode = 'none'):
response = requests.get(url).text
if 'mediaLink video' in response:
j = json.loads(re.compile('<a href="javascript:void\(0\);" class="mediaLink video" data-extension=\'(.+?)\'', re.DOTALL).findall(response)[0])
url = j['mediaObj']['url']
return parseVideoJs(url,signLang)
return parseVideoJs(url,viewerMode)
if 'mediaLink audio' in response:
j = json.loads(re.compile('<a href="javascript:void\(0\);" class="mediaLink audio" data-extension=\'(.+?)\'', re.DOTALL).findall(response)[0])
url = j['mediaObj']['url']
Expand All @@ -25,16 +25,18 @@ def parseAudioJs(url):
audio = f'http:{audio}'
return {'media':[{'url':audio, 'type':'video', 'stream':'audio'}]}

def parseVideoJs(url,signLang=False):
def parseVideoJs(url,viewerMode='none'):
response = requests.get(url).text
j = json.loads(response[38:-2])

videos = []
subUrlTtml = False
for type in j['mediaResource']:
if type == 'dflt' or type == 'alt':
if signLang and 'slVideoURL' in j['mediaResource'][type]:
if viewerMode == 'signlang' and 'slVideoURL' in j['mediaResource'][type]:
videos.append(j['mediaResource'][type]['slVideoURL'])
elif viewerMode == 'viddesc' and 'adVideoURL' in j['mediaResource'][type]:
videos.append(j['mediaResource'][type]['adVideoURL'])
else:
videos.append(j['mediaResource'][type]['videoURL'])
elif type == 'captionURL':
Expand Down Expand Up @@ -62,7 +64,7 @@ def parseVideoJs(url,signLang=False):
d['media'].append({'url':video, 'type': 'video', 'stream':'HLS'})
else:
d['media'].append({'url':video, 'type': 'video', 'stream':'mp4'})
if subUrlTtml:
if subUrlTtml and (viewerMode != 'none'):
if subUrlTtml.startswith('//'):
subUrlTtml = 'http:' + subUrlTtml
d['subtitle'] = []
Expand Down