This commit is contained in:
LucBerge 2020-10-23 17:58:14 +02:00 committed by GitHub
commit 043282f885
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 35 additions and 31 deletions

View File

@ -1,58 +1,62 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
import re
class LemondeIE(InfoExtractor):
_VALID_URL = r'https?://(?:.+?\.)?lemonde\.fr/(?:[^/]+/)*(?P<id>[^/]+)\.html'
_TESTS = [{
# Youtube embeded
'url': 'http://www.lemonde.fr/police-justice/video/2016/01/19/comprendre-l-affaire-bygmalion-en-cinq-minutes_4849702_1653578.html',
'md5': 'da120c8722d8632eec6ced937536cc98',
'md5': 'bf4645c22f7bde53a2a55cd2b089ee57',
'info_dict': {
'id': 'lqm3kl',
'id': 'tiv9ZFUrFj4',
'ext': 'mp4',
'title': "Comprendre l'affaire Bygmalion en 5 minutes",
'title': "Laffaire Bygmalion expliquée en\xa05\xa0minutes",
'thumbnail': r're:^https?://.*\.jpg',
'duration': 309,
'upload_date': '20160119',
'timestamp': 1453194778,
'uploader_id': '3pmkp',
'duration': 296,
'upload_date': '20181025',
'uploader': 'Le Monde',
'uploader_id': 'LeMonde',
'description': 'Dans laffaire Bygmalion, la justice a confirmé le renvoi en correctionnelle de Nicolas Sarkozy, jeudi 25 octobre. Dans la foulée, son avocat Thierry Herzog a annoncé que lancien président de la République allait former un pourvoi en cassation.\n\nLe 5 mars 2014, le parquet de Paris ouvrait une enquête préliminaire pour « faux », «abus de biens sociaux » et « abus de confiance » visant la société Bygmalion, soupçonnée dêtre au centre dun système de fausses factures. Grâce à elles, les responsables de Bygmalion et de sa filiale Event and Cie, ainsi que des membres de lUMP — devenue Les Républicains en 2015 — et de léquipe de campagne de Nicolas Sarkozy, auraient fait en sorte que les dépenses de campagne du candidat pour lélection présidentielle de 2012 restent inférieures au plafond autorisé par la loi.\n\nQuatorze personnes, dont Guillaume Lambert, qui était le directeur de campagne de Nicolas Sarkozy, et Jérôme Lavrilleux, alors directeur adjoint de campagne, sont renvoyées en procès. Jean-François Copé, lui, a bénéficié dun non-lieu et est définitivement blanchi.\n\nComment fonctionnait ce système de fausses factures ? Explications avec cette vidéo réalisée en janvier 2016.\n_______\n\nAbonnez-vous à la chaîne YouTube du Monde dès maintenant :\nhttp://www.youtube.com/subscription_center?add_user=LeMonde\n_______\n\nAbonnez-vous à la chaîne YouTube du Monde dès maintenant :\nhttp://www.youtube.com/subscription_center?add_user=LeMonde',
},
}, {
# standard iframe embed
# Dailymotion embeded
'url': 'http://www.lemonde.fr/les-decodeurs/article/2016/10/18/tout-comprendre-du-ceta-le-petit-cousin-du-traite-transatlantique_5015920_4355770.html',
'info_dict': {
'id': 'uzsxms',
'id': 'x4yejm2',
'ext': 'mp4',
'title': "CETA : quelles suites pour l'accord commercial entre l'Europe et le Canada ?",
'thumbnail': r're:^https?://.*\.jpg',
'duration': 325,
'title': "CETA : quelles suites l'accord commercial entre l'Europe et le Canada ?",
'duration': 326,
'upload_date': '20161021',
'timestamp': 1477044540,
'uploader_id': '3pmkp',
},
'params': {
'skip_download': True,
},
}, {
'url': 'http://redaction.actu.lemonde.fr/societe/video/2016/01/18/calais-debut-des-travaux-de-defrichement-dans-la-jungle_4849233_3224.html',
'only_matching': True,
}, {
# YouTube embeds
'url': 'http://www.lemonde.fr/pixels/article/2016/12/09/pourquoi-pewdiepie-superstar-de-youtube-a-menace-de-fermer-sa-chaine_5046649_4408996.html',
'only_matching': True,
'timestamp': 1477044897,
'uploader_id': 'x1wd0c',
'uploader': 'Le Monde.fr',
'description': 'CETA. 4 lettres pour Comprehensive Economic and Trade Agreement, ou Accord économique et commercial global). Un nom un peu barbare pour un traité transatlantique, cousin du Tafta, qui agite en ce moment lactualité européenne.\xa0Pour comprendre les enjeux de cet accord commercial, notre spécialiste Maxime Vaudano.'
}
}]
_PROVIDERS = {
"youtube": "https://www.youtube.com/embed/{}",
"dailymotion": "https://www.dailymotion.com/video/{}"
}
def _real_extract(self, url):
display_id = self._match_id(url)
webpage = self._download_webpage(url, display_id)
digiteka_url = self._proto_relative_url(self._search_regex(
r'url\s*:\s*(["\'])(?P<url>(?:https?://)?//(?:www\.)?(?:digiteka\.net|ultimedia\.com)/deliver/.+?)\1',
webpage, 'digiteka url', group='url', default=None))
digiteka_url = self._proto_relative_url(self._search_regex(r'url\s*:\s*(["\'])(?P<url>(?:https?://)?//(?:www\.)?(?:digiteka\.net|ultimedia\.com)/deliver/.+?)\1',webpage, 'digiteka url', group='url', default=None))
if digiteka_url:
return self.url_result(digiteka_url, 'Digiteka')
return self.url_result(url, 'Generic')
mobj = re.search(r'data-id="(?P<id>.+)" data-provider="(?P<provider>[^ ]+)"', webpage)
video_id = mobj.group('id') if mobj else display_id
provider = mobj.group('provider') if mobj else ""
embeded_url = self._PROVIDERS.get(provider, "{}").format(video_id)
return self.url_result(embeded_url, video_id=video_id)