mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
[Cinemassacre] Add detection for videos from blip.tv
This commit is contained in:
parent
da55dac047
commit
0954cd8aa4
3 changed files with 35 additions and 7 deletions
|
@ -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')
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
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 @@ def _playlist_from_matches(matches, getter=None, ie=None):
|
||||||
}
|
}
|
||||||
|
|
||||||
# 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)
|
bliptv_url = BlipTVIE._extract_url(webpage)
|
||||||
if mobj:
|
if bliptv_url:
|
||||||
return self.url_result('http://blip.tv/a/a-' + mobj.group(1), 'BlipTV')
|
return self.url_result(bliptv_url, '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')
|
|
||||||
|
|
||||||
# Look for embedded condenast player
|
# Look for embedded condenast player
|
||||||
matches = re.findall(
|
matches = re.findall(
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
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 @@ def _real_extract(self, url):
|
||||||
|
|
||||||
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…
Reference in a new issue