aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-05-26 01:25:40 +0700
committerSergey M․ <dstftw@gmail.com>2018-05-26 01:25:40 +0700
commitaee36ca832ec3a5696c40707098d97be0353e997 (patch)
tree79f67ef34187051df0330c77b7814f3a14570d37 /youtube_dl/extractor
parent2a7c6befc16f72df5368cb4adccd1cd84fd432d7 (diff)
[indavideo] Add support for generic embeds (closes #11989)
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/extractors.py5
-rw-r--r--youtube_dl/extractor/generic.py24
-rw-r--r--youtube_dl/extractor/indavideo.py70
3 files changed, 41 insertions, 58 deletions
diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py
index 374aa185c..c9b49a0cd 100644
--- a/youtube_dl/extractor/extractors.py
+++ b/youtube_dl/extractor/extractors.py
@@ -469,10 +469,7 @@ from .imgur import (
)
from .ina import InaIE
from .inc import IncIE
-from .indavideo import (
- IndavideoIE,
- IndavideoEmbedIE,
-)
+from .indavideo import IndavideoEmbedIE
from .infoq import InfoQIE
from .instagram import InstagramIE, InstagramUserIE
from .internazionale import InternazionaleIE
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 47ac139c9..0292e0458 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -109,6 +109,7 @@ from .vice import ViceIE
from .xfileshare import XFileShareIE
from .cloudflarestream import CloudflareStreamIE
from .peertube import PeerTubeIE
+from .indavideo import IndavideoEmbedIE
class GenericIE(InfoExtractor):
@@ -2023,6 +2024,24 @@ class GenericIE(InfoExtractor):
'playlist_count': 2,
},
{
+ # Indavideo embed
+ 'url': 'https://streetkitchen.hu/receptek/igy_kell_otthon_hamburgert_sutni/',
+ 'info_dict': {
+ 'id': '1693903',
+ 'ext': 'mp4',
+ 'title': 'Így kell otthon hamburgert sütni',
+ 'description': 'md5:f5a730ecf900a5c852e1e00540bbb0f7',
+ 'timestamp': 1426330212,
+ 'upload_date': '20150314',
+ 'uploader': 'StreetKitchen',
+ 'uploader_id': '546363',
+ },
+ 'add_ie': [IndavideoEmbedIE.ie_key()],
+ 'params': {
+ 'skip_download': True,
+ },
+ },
+ {
'url': 'http://share-videos.se/auto/video/83645793?uid=13',
'md5': 'b68d276de422ab07ee1d49388103f457',
'info_dict': {
@@ -3044,6 +3063,11 @@ class GenericIE(InfoExtractor):
return self.playlist_from_matches(
peertube_urls, video_id, video_title, ie=PeerTubeIE.ie_key())
+ indavideo_urls = IndavideoEmbedIE._extract_urls(webpage)
+ if indavideo_urls:
+ return self.playlist_from_matches(
+ indavideo_urls, video_id, video_title, ie=IndavideoEmbedIE.ie_key())
+
sharevideos_urls = [mobj.group('url') for mobj in re.finditer(
r'<iframe[^>]+?\bsrc\s*=\s*(["\'])(?P<url>(?:https?:)?//embed\.share-videos\.se/auto/embed/\d+\?.*?\buid=\d+.*?)\1',
webpage)]
diff --git a/youtube_dl/extractor/indavideo.py b/youtube_dl/extractor/indavideo.py
index 2946c7b84..2b5b2b5b0 100644
--- a/youtube_dl/extractor/indavideo.py
+++ b/youtube_dl/extractor/indavideo.py
@@ -1,6 +1,8 @@
# coding: utf-8
from __future__ import unicode_literals
+import re
+
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
@@ -38,6 +40,20 @@ class IndavideoEmbedIE(InfoExtractor):
'only_matching': True,
}]
+ # Some example URLs covered by generic extractor:
+ # http://indavideo.hu/video/Vicces_cica_1
+ # http://index.indavideo.hu/video/2015_0728_beregszasz
+ # http://auto.indavideo.hu/video/Sajat_utanfutoban_a_kis_tacsko
+ # http://erotika.indavideo.hu/video/Amator_tini_punci
+ # http://film.indavideo.hu/video/f_hrom_nagymamm_volt
+ # http://palyazat.indavideo.hu/video/Embertelen_dal_Dodgem_egyuttes
+
+ @staticmethod
+ def _extract_urls(webpage):
+ return re.findall(
+ r'<iframe[^>]+\bsrc=["\'](?P<url>(?:https?:)?//embed\.indavideo\.hu/player/video/[\da-f]+)',
+ webpage)
+
def _real_extract(self, url):
video_id = self._match_id(url)
@@ -110,57 +126,3 @@ class IndavideoEmbedIE(InfoExtractor):
'tags': tags,
'formats': formats,
}
-
-
-class IndavideoIE(InfoExtractor):
- _VALID_URL = r'https?://(?:.+?\.)?indavideo\.hu/video/(?P<id>[^/#?]+)'
- _TESTS = [{
- 'url': 'http://indavideo.hu/video/Vicces_cica_1',
- 'md5': '8c82244ba85d2a2310275b318eb51eac',
- 'info_dict': {
- 'id': '1335611',
- 'display_id': 'Vicces_cica_1',
- 'ext': 'mp4',
- 'title': 'Vicces cica',
- 'description': 'Játszik a tablettel. :D',
- 'thumbnail': r're:^https?://.*\.jpg$',
- 'uploader': 'Jet_Pack',
- 'uploader_id': '491217',
- 'timestamp': 1390821212,
- 'upload_date': '20140127',
- 'duration': 7,
- 'age_limit': 0,
- 'tags': list,
- },
- }, {
- 'url': 'http://index.indavideo.hu/video/2015_0728_beregszasz',
- 'only_matching': True,
- }, {
- 'url': 'http://auto.indavideo.hu/video/Sajat_utanfutoban_a_kis_tacsko',
- 'only_matching': True,
- }, {
- 'url': 'http://erotika.indavideo.hu/video/Amator_tini_punci',
- 'only_matching': True,
- }, {
- 'url': 'http://film.indavideo.hu/video/f_hrom_nagymamm_volt',
- 'only_matching': True,
- }, {
- 'url': 'http://palyazat.indavideo.hu/video/Embertelen_dal_Dodgem_egyuttes',
- 'only_matching': True,
- }]
-
- def _real_extract(self, url):
- display_id = self._match_id(url)
-
- webpage = self._download_webpage(url, display_id)
- embed_url = self._search_regex(
- (r'<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//embed\.indavideo\.hu/player/video/.+?)\1',
- r'<link[^>]+rel="video_src"[^>]+href="(?P<url>.+?)"'),
- webpage, 'embed url', group='url')
-
- return {
- '_type': 'url_transparent',
- 'ie_key': 'IndavideoEmbed',
- 'url': embed_url,
- 'display_id': display_id,
- }