Browse Source
[abcnews,chilloutsoze,cracked,vice,vk] Use dedicated YouTube embeds extraction routines
master
Sergey M․
7 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
5 changed files with
16 additions and
21 deletions
-
youtube_dl/extractor/abcnews.py
-
youtube_dl/extractor/chilloutzone.py
-
youtube_dl/extractor/cracked.py
-
youtube_dl/extractor/vice.py
-
youtube_dl/extractor/vk.py
|
|
@ -7,6 +7,7 @@ import time |
|
|
|
|
|
|
|
from .amp import AMPIE |
|
|
|
from .common import InfoExtractor |
|
|
|
from .youtube import YoutubeIE |
|
|
|
from ..compat import compat_urlparse |
|
|
|
|
|
|
|
|
|
|
@ -108,9 +109,7 @@ class AbcNewsIE(InfoExtractor): |
|
|
|
r'window\.abcnvideo\.url\s*=\s*"([^"]+)"', webpage, 'video URL') |
|
|
|
full_video_url = compat_urlparse.urljoin(url, video_url) |
|
|
|
|
|
|
|
youtube_url = self._html_search_regex( |
|
|
|
r'<iframe[^>]+src="(https://www\.youtube\.com/embed/[^"]+)"', |
|
|
|
webpage, 'YouTube URL', default=None) |
|
|
|
youtube_url = YoutubeIE._extract_url(webpage) |
|
|
|
|
|
|
|
timestamp = None |
|
|
|
date_str = self._html_search_regex( |
|
|
@ -140,7 +139,7 @@ class AbcNewsIE(InfoExtractor): |
|
|
|
} |
|
|
|
|
|
|
|
if youtube_url: |
|
|
|
entries = [entry, self.url_result(youtube_url, 'Youtube')] |
|
|
|
entries = [entry, self.url_result(youtube_url, ie=YoutubeIE.ie_key())] |
|
|
|
return self.playlist_result(entries) |
|
|
|
|
|
|
|
return entry |
|
|
@ -5,6 +5,7 @@ import base64 |
|
|
|
import json |
|
|
|
|
|
|
|
from .common import InfoExtractor |
|
|
|
from .youtube import YoutubeIE |
|
|
|
from ..utils import ( |
|
|
|
clean_html, |
|
|
|
ExtractorError |
|
|
@ -70,11 +71,9 @@ class ChilloutzoneIE(InfoExtractor): |
|
|
|
|
|
|
|
# If nativePlatform is None a fallback mechanism is used (i.e. youtube embed) |
|
|
|
if native_platform is None: |
|
|
|
youtube_url = self._html_search_regex( |
|
|
|
r'<iframe.* src="((?:https?:)?//(?:[^.]+\.)?youtube\.com/.+?)"', |
|
|
|
webpage, 'fallback video URL', default=None) |
|
|
|
if youtube_url is not None: |
|
|
|
return self.url_result(youtube_url, ie='Youtube') |
|
|
|
youtube_url = YoutubeIE._extract_url(webpage) |
|
|
|
if youtube_url: |
|
|
|
return self.url_result(youtube_url, ie=YoutubeIE.ie_key()) |
|
|
|
|
|
|
|
# Non Fallback: Decide to use native source (e.g. youtube or vimeo) or |
|
|
|
# the own CDN |
|
|
|
|
|
@ -3,6 +3,7 @@ from __future__ import unicode_literals |
|
|
|
import re |
|
|
|
|
|
|
|
from .common import InfoExtractor |
|
|
|
from .youtube import YoutubeIE |
|
|
|
from ..utils import ( |
|
|
|
parse_iso8601, |
|
|
|
str_to_int, |
|
|
@ -41,11 +42,9 @@ class CrackedIE(InfoExtractor): |
|
|
|
|
|
|
|
webpage = self._download_webpage(url, video_id) |
|
|
|
|
|
|
|
youtube_url = self._search_regex( |
|
|
|
r'<iframe[^>]+src="((?:https?:)?//www\.youtube\.com/embed/[^"]+)"', |
|
|
|
webpage, 'youtube url', default=None) |
|
|
|
youtube_url = YoutubeIE._extract_url(webpage) |
|
|
|
if youtube_url: |
|
|
|
return self.url_result(youtube_url, 'Youtube') |
|
|
|
return self.url_result(youtube_url, ie=YoutubeIE.ie_key()) |
|
|
|
|
|
|
|
video_url = self._html_search_regex( |
|
|
|
[r'var\s+CK_vidSrc\s*=\s*"([^"]+)"', r'<video\s+src="([^"]+)"'], |
|
|
|
|
|
@ -7,6 +7,7 @@ import hashlib |
|
|
|
import json |
|
|
|
|
|
|
|
from .adobepass import AdobePassIE |
|
|
|
from .youtube import YoutubeIE |
|
|
|
from .common import InfoExtractor |
|
|
|
from ..compat import compat_HTTPError |
|
|
|
from ..utils import ( |
|
|
@ -261,11 +262,9 @@ class ViceArticleIE(InfoExtractor): |
|
|
|
if embed_code: |
|
|
|
return _url_res('ooyala:%s' % embed_code, 'Ooyala') |
|
|
|
|
|
|
|
youtube_url = self._html_search_regex( |
|
|
|
r'<iframe[^>]+src="(.*youtube\.com/.*)"', |
|
|
|
body, 'YouTube URL', default=None) |
|
|
|
youtube_url = YoutubeIE._extract_url(body) |
|
|
|
if youtube_url: |
|
|
|
return _url_res(youtube_url, 'Youtube') |
|
|
|
return _url_res(youtube_url, YoutubeIE.ie_key()) |
|
|
|
|
|
|
|
video_url = self._html_search_regex( |
|
|
|
r'data-video-url="([^"]+)"', |
|
|
|
|
|
@ -25,6 +25,7 @@ from ..utils import ( |
|
|
|
from .dailymotion import DailymotionIE |
|
|
|
from .pladform import PladformIE |
|
|
|
from .vimeo import VimeoIE |
|
|
|
from .youtube import YoutubeIE |
|
|
|
|
|
|
|
|
|
|
|
class VKBaseIE(InfoExtractor): |
|
|
@ -345,11 +346,9 @@ class VKIE(VKBaseIE): |
|
|
|
if re.search(error_re, info_page): |
|
|
|
raise ExtractorError(error_msg % video_id, expected=True) |
|
|
|
|
|
|
|
youtube_url = self._search_regex( |
|
|
|
r'<iframe[^>]+src="((?:https?:)?//www.youtube.com/embed/[^"]+)"', |
|
|
|
info_page, 'youtube iframe', default=None) |
|
|
|
youtube_url = YoutubeIE._extract_url(info_page) |
|
|
|
if youtube_url: |
|
|
|
return self.url_result(youtube_url, 'Youtube') |
|
|
|
return self.url_result(youtube_url, ie=YoutubeIE.ie_key()) |
|
|
|
|
|
|
|
vimeo_url = VimeoIE._extract_url(url, info_page) |
|
|
|
if vimeo_url is not None: |
|
|
|