Browse Source

[pbs] Add support for flp frontlines (Closes #7369)

totalwebcasting
Sergey M․ 9 years ago
parent
commit
686f98816e
1 changed files with 18 additions and 0 deletions
  1. +18
    -0
      youtube_dl/extractor/pbs.py

+ 18
- 0
youtube_dl/extractor/pbs.py View File

@ -8,6 +8,7 @@ from ..utils import (
ExtractorError, ExtractorError,
determine_ext, determine_ext,
int_or_none, int_or_none,
strip_jsonp,
unified_strdate, unified_strdate,
US_RATINGS, US_RATINGS,
) )
@ -191,6 +192,23 @@ class PBSIE(InfoExtractor):
if media_id: if media_id:
return media_id, presumptive_id, upload_date return media_id, presumptive_id, upload_date
# Fronline video embedded via flp
video_id = self._search_regex(
r'videoid\s*:\s*"([\d+a-z]{7,})"', webpage, 'videoid')
if video_id:
# pkg_id calculation is reverse engineered from
# http://www.pbs.org/wgbh/pages/frontline/js/flp2012.js
prg_id = self._search_regex(
r'videoid\s*:\s*"([\d+a-z]{7,})"', webpage, 'videoid')[7:]
if 'q' in prg_id:
prg_id = prg_id.split('q')[1]
prg_id = int(prg_id, 16)
getdir = self._download_json(
'http://www.pbs.org/wgbh/pages/frontline/.json/getdir/getdir%d.json' % prg_id,
presumptive_id, 'Downloading getdir JSON',
transform_source=strip_jsonp)
return getdir['mid'], presumptive_id, upload_date
for iframe in re.findall(r'(?s)<iframe(.+?)></iframe>', webpage): for iframe in re.findall(r'(?s)<iframe(.+?)></iframe>', webpage):
url = self._search_regex( url = self._search_regex(
r'src=(["\'])(?P<url>.+?partnerplayer.+?)\1', iframe, r'src=(["\'])(?P<url>.+?partnerplayer.+?)\1', iframe,


Loading…
Cancel
Save