From c3b02b405bd448ff2ebb4e27a5c929327ffd310e Mon Sep 17 00:00:00 2001 From: mauriziopz Date: Sat, 25 Jun 2016 09:58:18 +0200 Subject: [PATCH 1/4] Cominsoon_it Add new extractor --- youtube_dl/extractor/comingsoon_it.py | 39 +++++++++++++++++++++++++++ youtube_dl/extractor/extractors.py | 1 + 2 files changed, 40 insertions(+) create mode 100644 youtube_dl/extractor/comingsoon_it.py diff --git a/youtube_dl/extractor/comingsoon_it.py b/youtube_dl/extractor/comingsoon_it.py new file mode 100644 index 000000000..be5a5f0f1 --- /dev/null +++ b/youtube_dl/extractor/comingsoon_it.py @@ -0,0 +1,39 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class ComingSoonITIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?comingsoon\.it/film/.*\b/video/\?.*\bvid=(?P\w+)' + _TEST = { + 'url': 'http://www.comingsoon.it/film/1981-indagine-a-new-york/50825/video/?vid=16392', + 'md5': '347808c99cce66b7b3654f7b694f6dfa', + 'info_dict': { + 'id': '16392', + 'ext': 'mp4', + 'title': '1981: Indagine a New York, Trailer del film, versione originale - Film (2014)', + 'url': 'http://video.comingsoon.it/MP4/16392.mp4', + 'description': 'Trailer del film, versione originale - 1981: Indagine a New York' + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + title = self._og_search_title(webpage) + description = self._og_search_description(webpage) + return { + 'id': video_id, + 'title': title, + 'description': description, + + 'formats': [{ + 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', + 'format': 'Standard Definition' + },{ + 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', + 'format': 'High Definition'}], + 'ext': 'mp4' + } \ No newline at end of file diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 6fc5a18f5..4a27167d5 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -155,6 +155,7 @@ from .coub import CoubIE from .collegerama import CollegeRamaIE from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE from .comcarcoff import ComCarCoffIE +from .comingsoon_it import ComingSoonITIE from .commonmistakes import CommonMistakesIE, UnicodeBOMIE from .commonprotocols import RtmpIE from .condenast import CondeNastIE From 43f86e12c0931bc0db160005510667b16565b6e4 Mon Sep 17 00:00:00 2001 From: mauriziopz Date: Sat, 25 Jun 2016 10:19:42 +0200 Subject: [PATCH 2/4] pep8 reformatting --- youtube_dl/extractor/comingsoon_it.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/youtube_dl/extractor/comingsoon_it.py b/youtube_dl/extractor/comingsoon_it.py index be5a5f0f1..85f67739c 100644 --- a/youtube_dl/extractor/comingsoon_it.py +++ b/youtube_dl/extractor/comingsoon_it.py @@ -21,19 +21,24 @@ class ComingSoonITIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - + title = self._og_search_title(webpage) description = self._og_search_description(webpage) + return { 'id': video_id, 'title': title, 'description': description, - - 'formats': [{ + + 'formats': [ + { 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', 'format': 'Standard Definition' - },{ + }, + { 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', - 'format': 'High Definition'}], + 'format': 'High Definition' + } + ], 'ext': 'mp4' - } \ No newline at end of file + } From 079c311df3269affd9002700e5691b27ac375ac3 Mon Sep 17 00:00:00 2001 From: mauriziopz Date: Sat, 25 Jun 2016 12:12:31 +0200 Subject: [PATCH 3/4] Fixed url for HD format and added test for it --- youtube_dl/extractor/comingsoon_it.py | 48 +++++++++++++++++++-------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/youtube_dl/extractor/comingsoon_it.py b/youtube_dl/extractor/comingsoon_it.py index 85f67739c..d3ed1bb7b 100644 --- a/youtube_dl/extractor/comingsoon_it.py +++ b/youtube_dl/extractor/comingsoon_it.py @@ -6,17 +6,35 @@ from .common import InfoExtractor class ComingSoonITIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?comingsoon\.it/film/.*\b/video/\?.*\bvid=(?P\w+)' - _TEST = { - 'url': 'http://www.comingsoon.it/film/1981-indagine-a-new-york/50825/video/?vid=16392', - 'md5': '347808c99cce66b7b3654f7b694f6dfa', - 'info_dict': { - 'id': '16392', - 'ext': 'mp4', - 'title': '1981: Indagine a New York, Trailer del film, versione originale - Film (2014)', - 'url': 'http://video.comingsoon.it/MP4/16392.mp4', - 'description': 'Trailer del film, versione originale - 1981: Indagine a New York' - } - } + _TESTS = [ + { + 'url': 'http://www.comingsoon.it/film/1981-indagine-a-new-york/50825/video/?vid=16392', + 'md5': '347808c99cce66b7b3654f7b694f6dfa', + 'info_dict': { + 'id': '16392', + 'ext': 'mp4', + 'title': '1981: Indagine a New York, Trailer del film, versione originale - Film (2014)', + 'url': 'http://video.comingsoon.it/MP4/16392.mp4', + 'description': 'Trailer del film, versione originale - 1981: Indagine a New York' + }, + 'params': { + 'format': 'sd', + }, + }, + { + 'url': 'http://www.comingsoon.it/film/1981-indagine-a-new-york/50825/video/?vid=16392', + 'md5': '15910a31dc49cb709d83d012ddefa8b1', + 'info_dict': { + 'id': '16392', + 'ext': 'mp4', + 'title': '1981: Indagine a New York, Trailer del film, versione originale - Film (2014)', + 'url': 'http://video.comingsoon.it/MP4/16392HD.mp4', + 'description': 'Trailer del film, versione originale - 1981: Indagine a New York' + }, + 'params': { + 'format': 'hd', + }, + }] def _real_extract(self, url): video_id = self._match_id(url) @@ -33,11 +51,13 @@ class ComingSoonITIE(InfoExtractor): 'formats': [ { 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', - 'format': 'Standard Definition' + 'format': 'Standard Definition', + 'format_id': 'sd' }, { - 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', - 'format': 'High Definition' + 'url': 'http://video.comingsoon.it/MP4/' + video_id + 'HD.mp4', + 'format': 'High Definition', + 'format_id': 'hd' } ], 'ext': 'mp4' From 86ee8474119b4043043afd536d98a4b7dc7dc8eb Mon Sep 17 00:00:00 2001 From: mauriziopz Date: Sun, 26 Jun 2016 11:06:31 +0200 Subject: [PATCH 4/4] modified url building logic to handle different extensions and videos without and HD format --- youtube_dl/extractor/comingsoon_it.py | 49 ++++++++++++++++++--------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/youtube_dl/extractor/comingsoon_it.py b/youtube_dl/extractor/comingsoon_it.py index d3ed1bb7b..9a57371c3 100644 --- a/youtube_dl/extractor/comingsoon_it.py +++ b/youtube_dl/extractor/comingsoon_it.py @@ -34,31 +34,48 @@ class ComingSoonITIE(InfoExtractor): 'params': { 'format': 'hd', }, + }, + { + 'url': 'http://www.comingsoon.it/film/il-passato-e-una-terra-straniera/39912/video/?vid=1564', + 'md5': '9c8db6b04d4c3858ad31857ce1c82350', + 'info_dict': { + 'id': '1564', + 'ext': 'flv', + 'title': 'Il passato è una terra straniera, Trailer del film diretto da Daniele Vicari, con Elio Germano - Film (2008)', + 'url': 'http://video.comingsoon.it/1564.flv', + 'description': 'Trailer del film diretto da Daniele Vicari, con Elio Germano - Il passato è una terra straniera' + }, + 'params': { + 'format': 'sd', + }, }] def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - + webpage = self._download_webpage(url, video_id, 'downloading webpage with metadata') title = self._og_search_title(webpage) description = self._og_search_description(webpage) + embedPage = self._download_webpage('http://www.comingsoon.it/videoplayer/embed/?idv=' + video_id, video_id, 'downloading webpage with video urls') + lowRes = self._search_regex(r'vLwRes: "(.*)"', embedPage, 'Low resolution filename', default=None) + highRes = self._search_regex(r'vHiRes: "(.*)"', embedPage, 'High ressolution filename', default=None) + formats = [] + formats.append( + { + 'url': 'http://video.comingsoon.it/' + lowRes, + 'format': 'Standard Definition', + 'format_id': 'sd' + }) + if(lowRes != highRes): + formats.append( + { + 'url': 'http://video.comingsoon.it/' + highRes, + 'format': 'High Definition', + 'format_id': 'hd' + }) return { 'id': video_id, 'title': title, 'description': description, - - 'formats': [ - { - 'url': 'http://video.comingsoon.it/MP4/' + video_id + '.mp4', - 'format': 'Standard Definition', - 'format_id': 'sd' - }, - { - 'url': 'http://video.comingsoon.it/MP4/' + video_id + 'HD.mp4', - 'format': 'High Definition', - 'format_id': 'hd' - } - ], - 'ext': 'mp4' + 'formats': formats, }