Browse Source

[Cinemassacre] Add detection for videos from blip.tv

totalwebcasting
Yen Chi Hsuan 10 years ago
parent
commit
0954cd8aa4
3 changed files with 35 additions and 7 deletions
  1. +9
    -0
      youtube_dl/extractor/bliptv.py
  2. +4
    -6
      youtube_dl/extractor/generic.py
  3. +22
    -1
      youtube_dl/extractor/screenwavemedia.py

+ 9
- 0
youtube_dl/extractor/bliptv.py View File

@ -102,6 +102,15 @@ class BlipTVIE(InfoExtractor):
}, },
] ]
@staticmethod
def _extract_url(webpage):
mobj = re.search(r'<meta\s[^>]*https?://api\.blip\.tv/\w+/redirect/\w+/(\d+)', webpage)
if mobj:
return 'http://blip.tv/a/a-' + mobj.group(1)
mobj = re.search(r'<(?:iframe|embed|object)\s[^>]*(https?://(?:\w+\.)?blip\.tv/(?:play/|api\.swf#)[a-zA-Z0-9_]+)', webpage)
if mobj:
return mobj.group(1)
def _real_extract(self, url): def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url) mobj = re.match(self._VALID_URL, url)
lookup_id = mobj.group('lookup_id') lookup_id = mobj.group('lookup_id')


+ 4
- 6
youtube_dl/extractor/generic.py View File

@ -36,6 +36,7 @@ from .smotri import SmotriIE
from .condenast import CondeNastIE from .condenast import CondeNastIE
from .udn import UDNEmbedIE from .udn import UDNEmbedIE
from .senateisvp import SenateISVPIE from .senateisvp import SenateISVPIE
from .bliptv import BlipTVIE
class GenericIE(InfoExtractor): class GenericIE(InfoExtractor):
@ -1073,12 +1074,9 @@ class GenericIE(InfoExtractor):
} }
# Look for embedded blip.tv player # Look for embedded blip.tv player
mobj = re.search(r'<meta\s[^>]*https?://api\.blip\.tv/\w+/redirect/\w+/(\d+)', webpage)
if mobj:
return self.url_result('http://blip.tv/a/a-' + mobj.group(1), 'BlipTV')
mobj = re.search(r'<(?:iframe|embed|object)\s[^>]*(https?://(?:\w+\.)?blip\.tv/(?:play/|api\.swf#)[a-zA-Z0-9_]+)', webpage)
if mobj:
return self.url_result(mobj.group(1), 'BlipTV')
bliptv_url = BlipTVIE._extract_url(webpage)
if bliptv_url:
return self.url_result(bliptv_url, 'BlipTV')
# Look for embedded condenast player # Look for embedded condenast player
matches = re.findall( matches = re.findall(


+ 22
- 1
youtube_dl/extractor/screenwavemedia.py View File

@ -7,7 +7,9 @@ from .common import InfoExtractor
from ..utils import ( from ..utils import (
int_or_none, int_or_none,
unified_strdate, unified_strdate,
ExtractorError
) )
from .bliptv import BlipTVIE
class ScreenwaveMediaIE(InfoExtractor): class ScreenwaveMediaIE(InfoExtractor):
@ -104,6 +106,20 @@ class CinemassacreIE(InfoExtractor):
'upload_date': '20131002', 'upload_date': '20131002',
'title': 'The Mummy’s Hand (1940)', 'title': 'The Mummy’s Hand (1940)',
}, },
},
{
'url': 'http://cinemassacre.com/2006/12/07/chronologically-confused-about-bad-movie-and-video-game-sequel-titles/',
'md5': 'ca9b3c8dd5a66f9375daeb5135f5a3de',
'info_dict': {
'id': '4065369',
'ext': 'flv',
'title': 'AVGN: Chronologically Confused about Bad Movie and Video Game Sequel Titles',
'upload_date': '20061207',
'uploader': 'cinemassacre',
'uploader_id': '250778',
'timestamp': 1283233867,
'description': 'md5:0a108c78d130676b207d0f6d029ecffd',
}
} }
] ]
@ -116,7 +132,12 @@ class CinemassacreIE(InfoExtractor):
playerdata_url = self._search_regex( playerdata_url = self._search_regex(
r'src="(http://player\.screenwavemedia\.com/play/[a-zA-Z]+\.php\?[^"]*\bid=.+?)"', r'src="(http://player\.screenwavemedia\.com/play/[a-zA-Z]+\.php\?[^"]*\bid=.+?)"',
webpage, 'player data URL')
webpage, 'player data URL', default=None)
if not playerdata_url:
playerdata_url = BlipTVIE._extract_url(webpage)
if not playerdata_url:
raise ExtractorError('Unable to find player data')
video_title = self._html_search_regex( video_title = self._html_search_regex(
r'<title>(?P<title>.+?)\|', webpage, 'title') r'<title>(?P<title>.+?)\|', webpage, 'title')
video_description = self._html_search_regex( video_description = self._html_search_regex(


Loading…
Cancel
Save