|
|
@ -189,7 +189,7 @@ class PBSIE(InfoExtractor):
|
|
|
|
# Direct video URL
|
|
|
|
# Direct video URL
|
|
|
|
(?:%s)/(?:viralplayer|video)/(?P<id>[0-9]+)/? |
|
|
|
|
(?:%s)/(?:viralplayer|video)/(?P<id>[0-9]+)/? |
|
|
|
|
# Article with embedded player (or direct video)
|
|
|
|
# Article with embedded player (or direct video)
|
|
|
|
(?:www\.)?pbs\.org/(?:[^/]+/){2,5}(?P<presumptive_id>[^/]+?)(?:\.html)?/?(?:$|[?\#]) |
|
|
|
|
(?:www\.)?pbs\.org/(?:[^/]+/){1,5}(?P<presumptive_id>[^/]+?)(?:\.html)?/?(?:$|[?\#]) |
|
|
|
|
# Player
|
|
|
|
# Player
|
|
|
|
(?:video|player)\.pbs\.org/(?:widget/)?partnerplayer/(?P<player_id>[^/]+)/
|
|
|
|
(?:video|player)\.pbs\.org/(?:widget/)?partnerplayer/(?P<player_id>[^/]+)/
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -345,6 +345,21 @@ class PBSIE(InfoExtractor):
|
|
|
|
'formats': 'mincount:8',
|
|
|
|
'formats': 'mincount:8',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
# https://github.com/rg3/youtube-dl/issues/13801
|
|
|
|
|
|
|
|
'url': 'https://www.pbs.org/video/pbs-newshour-full-episode-july-31-2017-1501539057/',
|
|
|
|
|
|
|
|
'info_dict': {
|
|
|
|
|
|
|
|
'id': '3003333873',
|
|
|
|
|
|
|
|
'ext': 'mp4',
|
|
|
|
|
|
|
|
'title': 'PBS NewsHour - full episode July 31, 2017',
|
|
|
|
|
|
|
|
'description': 'md5:d41d8cd98f00b204e9800998ecf8427e',
|
|
|
|
|
|
|
|
'duration': 3265,
|
|
|
|
|
|
|
|
'thumbnail': r're:^https?://.*\.jpg$',
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
'params': {
|
|
|
|
|
|
|
|
'skip_download': True,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
'url': 'http://player.pbs.org/widget/partnerplayer/2365297708/?start=0&end=0&chapterbar=false&endscreen=false&topbar=true',
|
|
|
|
'url': 'http://player.pbs.org/widget/partnerplayer/2365297708/?start=0&end=0&chapterbar=false&endscreen=false&topbar=true',
|
|
|
|
'only_matching': True,
|
|
|
|
'only_matching': True,
|
|
|
@ -433,6 +448,9 @@ class PBSIE(InfoExtractor):
|
|
|
|
if url:
|
|
|
|
if url:
|
|
|
|
break
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not url:
|
|
|
|
|
|
|
|
url = self._og_search_url(webpage)
|
|
|
|
|
|
|
|
|
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
|
|
|
|
|
|
|
|
|
player_id = mobj.group('player_id')
|
|
|
|
player_id = mobj.group('player_id')
|
|
|
|