From cc504ab6c169f8f2cb033bf8e0dbbd54c34d88f2 Mon Sep 17 00:00:00 2001 From: Eitan Postavsky Date: Sun, 25 Feb 2018 09:36:42 -0500 Subject: [PATCH 1/3] franceinter download video when available (ignoring audio) --- youtube_dl/extractor/franceinter.py | 55 ++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/youtube_dl/extractor/franceinter.py b/youtube_dl/extractor/franceinter.py index 05806895c..cec991ac3 100644 --- a/youtube_dl/extractor/franceinter.py +++ b/youtube_dl/extractor/franceinter.py @@ -1,6 +1,8 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..utils import month_by_name @@ -8,26 +10,53 @@ from ..utils import month_by_name class FranceInterIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?franceinter\.fr/emissions/(?P[^?#]+)' - _TEST = { - 'url': 'https://www.franceinter.fr/emissions/affaires-sensibles/affaires-sensibles-07-septembre-2016', - 'md5': '9e54d7bdb6fdc02a841007f8a975c094', - 'info_dict': { - 'id': 'affaires-sensibles/affaires-sensibles-07-septembre-2016', - 'ext': 'mp3', - 'title': 'Affaire Cahuzac : le contentieux du compte en Suisse', - 'description': 'md5:401969c5d318c061f86bda1fa359292b', - 'upload_date': '20160907', + _TESTS = [ + { + 'url': 'https://www.franceinter.fr/emissions/affaires-sensibles/affaires-sensibles-07-septembre-2016', + 'md5': '9e54d7bdb6fdc02a841007f8a975c094', + 'info_dict': { + 'id': 'affaires-sensibles/affaires-sensibles-07-septembre-2016', + 'ext': 'mp3', + 'title': 'Affaire Cahuzac : le contentieux du compte en Suisse', + 'description': 'md5:401969c5d318c061f86bda1fa359292b', + 'upload_date': '20160907', + }, }, - } + { + 'note': 'Audio + video (Dailymotion embed)', + 'url': 'https://www.franceinter.fr/emissions/l-instant-m/l-instant-m-13-fevrier-2018', + 'info_dict': { + 'id': 'x6eow0v', + 'ext': 'mp4', + 'title': 'Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ?', + 'description': 'Regardez Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ? par France Inter sur Dailymotion', + 'uploader_id': 'x2q2ez', + 'timestamp': 1518516881, + 'uploader': 'France Inter', + 'upload_date': '20180213', + }, + }, + ] def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - video_url = self._search_regex( + # If there is a video version, use that instead + maybe_video_uuid = re.search(r'data-video-anchor-target=["\']([^"\']+)', webpage) + if maybe_video_uuid: + video_uuid = maybe_video_uuid.group(1) + video_url = self._search_regex( + r'(?sx)data-uuid=["\']%s.*?]*src=["\']([^"\']+)' % video_uuid, + webpage, 'video url', fatal=False, group=1) + + if video_url: + return self.url_result(video_url) + + audio_url = self._search_regex( r'(?s)]+class=["\']page-diffusion["\'][^>]*>.*?]+data-url=(["\'])(?P(?:(?!\1).)+)\1', - webpage, 'video url', group='url') + webpage, 'audio url', group='url') title = self._og_search_title(webpage) description = self._og_search_description(webpage) @@ -50,7 +79,7 @@ class FranceInterIE(InfoExtractor): 'description': description, 'upload_date': upload_date, 'formats': [{ - 'url': video_url, + 'url': audio_url, 'vcodec': 'none', }], } From ed86ecaab6a7b1014a4bc4c2b172b5d391949aa2 Mon Sep 17 00:00:00 2001 From: Eitan Postavsky Date: Sat, 6 Oct 2018 11:58:17 -0400 Subject: [PATCH 2/3] fixed description in test case --- youtube_dl/extractor/franceinter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/franceinter.py b/youtube_dl/extractor/franceinter.py index cec991ac3..d14a1417f 100644 --- a/youtube_dl/extractor/franceinter.py +++ b/youtube_dl/extractor/franceinter.py @@ -29,7 +29,7 @@ class FranceInterIE(InfoExtractor): 'id': 'x6eow0v', 'ext': 'mp4', 'title': 'Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ?', - 'description': 'Regardez Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ? par France Inter sur Dailymotion', + 'description': 'Le youtubeur Nota Bene pour \"History’s Creed\", la nouvelle websérie d\'ARTE Creative qui explore la relation Jeux vidéo et Histoire. Que nos enfants peuvent-ils apprendre de la Révolution française en jouant à « Assasin’s Creed » ? Et quelle vision auront-il de la Seconde Guerre mondiale en plongeant dans « Call of duty » ? Les jeux vidéo constituent un support majeur de représentation de l’Histoire avec un grand H. Simple décor ? Prétexte narratif ? Ou nouvelle lecture du passé ? Le jeu vidéo est devenu un médium si puissant et si mondialisé qu’il nous faut non seulement interroger la crédibilité de ses représentations, mais aussi l’idéologie de ses récits. Mon invité n’ignore rien des stéréotypes historiques, du spectaculaire trompeur et des tentations propagandistes auxquelles peuvent céder les jeux vidéo. Ils n’en demeurent pas moins, à ses yeux, un pont formidable vers la connaissance. Ben dit Nota Bene, sur Youtube, sa chaîne d’histoire y est massivement suivie. Il y raconte l’Histoire de manière ludique et pointue à la fois. Sans hésiter à piocher dans la pop culture, type Harry Potter ou Game of Thrones… History’s Creed, c’est à voir sur le site d’Arte, arte creative, c’est en 10 petits épisodes. Et c’est formidable. L\'Instant M , l’invité était Nota Bene (9h40 - 13 Février 2018) Retrouvez L\'Instant M sur www.franceinter.fr', 'uploader_id': 'x2q2ez', 'timestamp': 1518516881, 'uploader': 'France Inter', From 8f6f102fcdca22559b22c6e608d22bbe7d7d2717 Mon Sep 17 00:00:00 2001 From: Eitan Postavsky Date: Sat, 6 Oct 2018 12:35:35 -0400 Subject: [PATCH 3/3] [franceinter] download both video and audio --- youtube_dl/extractor/franceinter.py | 48 +++++++++++++++++------------ 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/youtube_dl/extractor/franceinter.py b/youtube_dl/extractor/franceinter.py index d14a1417f..ab01d42d8 100644 --- a/youtube_dl/extractor/franceinter.py +++ b/youtube_dl/extractor/franceinter.py @@ -26,15 +26,12 @@ class FranceInterIE(InfoExtractor): 'note': 'Audio + video (Dailymotion embed)', 'url': 'https://www.franceinter.fr/emissions/l-instant-m/l-instant-m-13-fevrier-2018', 'info_dict': { - 'id': 'x6eow0v', - 'ext': 'mp4', - 'title': 'Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ?', - 'description': 'Le youtubeur Nota Bene pour \"History’s Creed\", la nouvelle websérie d\'ARTE Creative qui explore la relation Jeux vidéo et Histoire. Que nos enfants peuvent-ils apprendre de la Révolution française en jouant à « Assasin’s Creed » ? Et quelle vision auront-il de la Seconde Guerre mondiale en plongeant dans « Call of duty » ? Les jeux vidéo constituent un support majeur de représentation de l’Histoire avec un grand H. Simple décor ? Prétexte narratif ? Ou nouvelle lecture du passé ? Le jeu vidéo est devenu un médium si puissant et si mondialisé qu’il nous faut non seulement interroger la crédibilité de ses représentations, mais aussi l’idéologie de ses récits. Mon invité n’ignore rien des stéréotypes historiques, du spectaculaire trompeur et des tentations propagandistes auxquelles peuvent céder les jeux vidéo. Ils n’en demeurent pas moins, à ses yeux, un pont formidable vers la connaissance. Ben dit Nota Bene, sur Youtube, sa chaîne d’histoire y est massivement suivie. Il y raconte l’Histoire de manière ludique et pointue à la fois. Sans hésiter à piocher dans la pop culture, type Harry Potter ou Game of Thrones… History’s Creed, c’est à voir sur le site d’Arte, arte creative, c’est en 10 petits épisodes. Et c’est formidable. L\'Instant M , l’invité était Nota Bene (9h40 - 13 Février 2018) Retrouvez L\'Instant M sur www.franceinter.fr', - 'uploader_id': 'x2q2ez', - 'timestamp': 1518516881, - 'uploader': 'France Inter', + 'id': 'l-instant-m/l-instant-m-13-fevrier-2018', + 'title': 'Propagande, stéréotypes, spectaculaire : les jeux vidéo font-ils du mal à l\'Histoire ?', + 'description': 'Le youtubeur Nota Bene pour \\\"History’s Creed\\\", la nouvelle websérie d\'ARTE Creative qui explore la relation Jeux vidéo et Histoire', 'upload_date': '20180213', }, + 'playlist_count': 2, }, ] @@ -43,17 +40,6 @@ class FranceInterIE(InfoExtractor): webpage = self._download_webpage(url, video_id) - # If there is a video version, use that instead - maybe_video_uuid = re.search(r'data-video-anchor-target=["\']([^"\']+)', webpage) - if maybe_video_uuid: - video_uuid = maybe_video_uuid.group(1) - video_url = self._search_regex( - r'(?sx)data-uuid=["\']%s.*?]*src=["\']([^"\']+)' % video_uuid, - webpage, 'video url', fatal=False, group=1) - - if video_url: - return self.url_result(video_url) - audio_url = self._search_regex( r'(?s)]+class=["\']page-diffusion["\'][^>]*>.*?]+data-url=(["\'])(?P(?:(?!\1).)+)\1', webpage, 'audio url', group='url') @@ -73,7 +59,7 @@ class FranceInterIE(InfoExtractor): else: upload_date = None - return { + audio = { 'id': video_id, 'title': title, 'description': description, @@ -83,3 +69,27 @@ class FranceInterIE(InfoExtractor): 'vcodec': 'none', }], } + + # If there is a video, return playlist of audio + video, else just audio + maybe_video_uuid = re.search(r'data-video-anchor-target=["\']([^"\']+)', webpage) + if maybe_video_uuid: + video_uuid = maybe_video_uuid.group(1) + video_url = self._search_regex( + r'(?sx)data-uuid=["\']%s.*?]*src=["\']([^"\']+)' % video_uuid, + webpage, 'video url', fatal=False, group=1) + + if video_url: + video = {'_type': 'url', 'url': video_url} + + return { + '_type': 'playlist', + 'id': video_id, + 'title': title, + 'description': description, + 'upload_date': upload_date, + 'entries': [audio, video] + } + else: + return audio + else: + return audio