mirror of
https://github.com/l1ving/youtube-dl
synced 2025-02-03 07:02:56 +08:00
added smosh.com
This commit is contained in:
parent
300148b48a
commit
a8043d7a7e
@ -2,6 +2,8 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from .youtube import YoutubeIE
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from ..compat import compat_str
|
from ..compat import compat_str
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
@ -11,7 +13,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class BreakIE(InfoExtractor):
|
class BreakIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:www\.)?(?P<site>break|screenjunkies)\.com/video/(?P<display_id>[^/]+?)(?:-(?P<id>\d+))?(?:[/?#&]|$)'
|
_VALID_URL = r'https?://(?:www\.)?(?P<site>break|screenjunkies|smosh)\.com(?:/videos?)?/(?P<display_id>[^/]+?)(?:-(?P<id>\d+))?(?:[/?#&]|$)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://www.break.com/video/when-girls-act-like-guys-2468056',
|
'url': 'http://www.break.com/video/when-girls-act-like-guys-2468056',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
@ -60,6 +62,27 @@ class BreakIE(InfoExtractor):
|
|||||||
}, {
|
}, {
|
||||||
'url': 'http://www.break.com/video/ugc/baby-flex-2773063',
|
'url': 'http://www.break.com/video/ugc/baby-flex-2773063',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
'url': 'http://www.smosh.com/videos/breaking-habit-alternate-ending',
|
||||||
|
'md5': '7d479b013dd7a15c8f45c7e60aeffe1b',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '2600992',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Breaking the Habit Alternate Ending',
|
||||||
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
|
'age_limit': 10,
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
'note': 'oldest working Smosh video',
|
||||||
|
'url': 'http://www.smosh.com/cat-soup-extras',
|
||||||
|
'md5': '2559839e1b37c292d59976f9251b0a00',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '2600936',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Cat Soup Extras',
|
||||||
|
'thumbnail': r're:^https?://.*\.jpg',
|
||||||
|
'age_limit': 10,
|
||||||
|
}
|
||||||
}]
|
}]
|
||||||
|
|
||||||
_DEFAULT_BITRATES = (48, 150, 320, 496, 864, 2240, 3264)
|
_DEFAULT_BITRATES = (48, 150, 320, 496, 864, 2240, 3264)
|
||||||
@ -67,22 +90,33 @@ class BreakIE(InfoExtractor):
|
|||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
site, display_id, video_id = re.match(self._VALID_URL, url).groups()
|
site, display_id, video_id = re.match(self._VALID_URL, url).groups()
|
||||||
|
|
||||||
if not video_id:
|
|
||||||
webpage = self._download_webpage(url, display_id)
|
webpage = self._download_webpage(url, display_id)
|
||||||
|
|
||||||
|
if not video_id:
|
||||||
video_id = self._search_regex(
|
video_id = self._search_regex(
|
||||||
(r'src=["\']/embed/(\d+)', r'data-video-content-id=["\'](\d+)'),
|
(r'src=["\'](?:https?://(?:www\.)?break\.com)?/embed/(\d+)',
|
||||||
|
r'data-video-content-id=["\'](\d+)'),
|
||||||
webpage, 'video id')
|
webpage, 'video id')
|
||||||
|
|
||||||
webpage = self._download_webpage(
|
embed_url = self._html_search_meta('embed_video_url', webpage, default=None)
|
||||||
'http://www.%s.com/embed/%s' % (site, video_id),
|
if not embed_url:
|
||||||
|
playerHost = self._search_regex(r'playerHost: "(.*?)"',
|
||||||
|
webpage, 'video embed host',
|
||||||
|
default='http://www.%s.com' % site)
|
||||||
|
embed_url = playerHost + '/embed/' + video_id
|
||||||
|
|
||||||
|
embed_page = self._download_webpage(
|
||||||
|
embed_url,
|
||||||
display_id, 'Downloading video embed page')
|
display_id, 'Downloading video embed page')
|
||||||
embed_vars = self._parse_json(
|
embed_vars = self._parse_json(
|
||||||
self._search_regex(
|
self._search_regex(
|
||||||
r'(?s)embedVars\s*=\s*({.+?})\s*</script>', webpage, 'embed vars'),
|
r'(?s)embedVars\s*=\s*({.+?})\s*</script>', embed_page, 'embed vars'),
|
||||||
display_id)
|
display_id)
|
||||||
|
|
||||||
youtube_id = embed_vars.get('youtubeId')
|
youtube_id = embed_vars.get('youtubeId')
|
||||||
if youtube_id:
|
if youtube_id:
|
||||||
|
# On Smosh, it's not a valid Youtube ID, it's just some md5
|
||||||
|
if re.search(YoutubeIE._VALID_URL, youtube_id):
|
||||||
return self.url_result(youtube_id, 'Youtube')
|
return self.url_result(youtube_id, 'Youtube')
|
||||||
|
|
||||||
title = embed_vars['contentName']
|
title = embed_vars['contentName']
|
||||||
|
Loading…
Reference in New Issue
Block a user