diff options
Diffstat (limited to 'youtube_dl/extractor/generic.py')
| -rw-r--r-- | youtube_dl/extractor/generic.py | 68 | 
1 files changed, 68 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 8716e4503..6c212efac 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -29,10 +29,12 @@ from ..utils import (      xpath_text,  )  from .brightcove import BrightcoveIE +from .nbc import NBCSportsVPlayerIE  from .ooyala import OoyalaIE  from .rutv import RUTVIE  from .smotri import SmotriIE  from .condenast import CondeNastIE +from .udn import UDNEmbedIE  class GenericIE(InfoExtractor): @@ -527,6 +529,17 @@ class GenericIE(InfoExtractor):              },              'add_ie': ['Viddler'],          }, +        # Libsyn embed +        { +            'url': 'http://thedailyshow.cc.com/podcast/episodetwelve', +            'info_dict': { +                'id': '3377616', +                'ext': 'mp3', +                'title': "The Daily Show Podcast without Jon Stewart - Episode 12: Bassem Youssef: Egypt's Jon Stewart", +                'description': 'md5:601cb790edd05908957dae8aaa866465', +                'upload_date': '20150220', +            }, +        },          # jwplayer YouTube          {              'url': 'http://media.nationalarchives.gov.uk/index.php/webinar-using-discovery-national-archives-online-catalogue/', @@ -609,6 +622,16 @@ class GenericIE(InfoExtractor):                  'age_limit': 0,              },          }, +        # 5min embed +        { +            'url': 'http://techcrunch.com/video/facebook-creates-on-this-day-crunch-report/518726732/', +            'md5': '4c6f127a30736b59b3e2c19234ee2bf7', +            'info_dict': { +                'id': '518726732', +                'ext': 'mp4', +                'title': 'Facebook Creates "On This Day" | Crunch Report', +            }, +        },          # RSS feed with enclosure          {              'url': 'http://podcastfeeds.nbcnews.com/audio/podcast/MSNBC-MADDOW-NETCAST-M4V.xml', @@ -618,6 +641,27 @@ class GenericIE(InfoExtractor):                  'upload_date': '20150228',                  'title': 'pdv_maddow_netcast_m4v-02-27-2015-201624',              } +        }, +        # NBC Sports vplayer embed +        { +            'url': 'http://www.riderfans.com/forum/showthread.php?121827-Freeman&s=e98fa1ea6dc08e886b1678d35212494a', +            'info_dict': { +                'id': 'ln7x1qSThw4k', +                'ext': 'flv', +                'title': "PFT Live: New leader in the 'new-look' defense", +                'description': 'md5:65a19b4bbfb3b0c0c5768bed1dfad74e', +            }, +        }, +        # UDN embed +        { +            'url': 'http://www.udn.com/news/story/7314/822787', +            'md5': 'de06b4c90b042c128395a88f0384817e', +            'info_dict': { +                'id': '300040', +                'ext': 'mp4', +                'title': '生物老師男變女 全校挺"做自己"', +                'thumbnail': 're:^https?://.*\.jpg$', +            }          }      ] @@ -1013,6 +1057,12 @@ class GenericIE(InfoExtractor):          if mobj is not None:              return self.url_result(mobj.group('url')) +        # Look for Libsyn player +        mobj = re.search( +            r'<iframe[^>]+src=(["\'])(?P<url>(?:https?:)?//html5-player\.libsyn\.com/embed/.+?)\1', webpage) +        if mobj is not None: +            return self.url_result(mobj.group('url')) +          # Look for Ooyala videos          mobj = (re.search(r'player\.ooyala\.com/[^"?]+\?[^"]*?(?:embedCode|ec)=(?P<ec>[^"&]+)', webpage) or                  re.search(r'OO\.Player\.create\([\'"].*?[\'"],\s*[\'"](?P<ec>.{32})[\'"]', webpage) or @@ -1219,6 +1269,24 @@ class GenericIE(InfoExtractor):          if mobj is not None:              return self.url_result(mobj.group('url'), 'Pladform') +        # Look for 5min embeds +        mobj = re.search( +            r'<meta[^>]+property="og:video"[^>]+content="https?://embed\.5min\.com/(?P<id>[0-9]+)/?', webpage) +        if mobj is not None: +            return self.url_result('5min:%s' % mobj.group('id'), 'FiveMin') + +        # Look for NBC Sports VPlayer embeds +        nbc_sports_url = NBCSportsVPlayerIE._extract_url(webpage) +        if nbc_sports_url: +            return self.url_result(nbc_sports_url, 'NBCSportsVPlayer') + +        # Look for UDN embeds +        mobj = re.search( +            r'<iframe[^>]+src="(?P<url>%s)"' % UDNEmbedIE._VALID_URL, webpage) +        if mobj is not None: +            return self.url_result( +                compat_urlparse.urljoin(url, mobj.group('url')), 'UDNEmbed') +          def check_video(vurl):              if YoutubeIE.suitable(vurl):                  return True | 
