2013-06-29 15:18:19 +02:00
# coding: utf-8
2014-03-29 15:05:15 +01:00
from __future__ import unicode_literals
2013-06-29 15:18:19 +02:00
from . common import InfoExtractor
2019-06-12 14:50:45 +02:00
from youtube_dl . utils import (
RegexNotFoundError ,
)
2014-03-29 15:05:15 +01:00
2013-06-29 15:18:19 +02:00
class TF1IE ( InfoExtractor ) :
2013-07-29 23:38:02 +02:00
""" TF1 uses the wat.tv player. """
2016-05-22 16:54:41 +01:00
_VALID_URL = r ' https?://(?:(?:videos|www|lci) \ .tf1|(?:www \ .)?(?:tfou|ushuaiatv|histoire|tvbreizh)) \ .fr/(?:[^/]+/)*(?P<id>[^/?#.]+) '
2015-05-26 13:32:43 +08:00
_TESTS = [ {
2014-03-29 15:05:15 +01:00
' url ' : ' http://videos.tf1.fr/auto-moto/citroen-grand-c4-picasso-2013-presentation-officielle-8062060.html ' ,
' info_dict ' : {
' id ' : ' 10635995 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Citroën Grand C4 Picasso 2013 : présentation officielle ' ,
' description ' : ' Vidéo officielle du nouveau Citroën Grand C4 Picasso, lancé à l \' automne 2013. ' ,
} ,
' params ' : {
# Sometimes wat serves the whole file with the --test option
' skip_download ' : True ,
2013-07-30 11:19:07 +02:00
} ,
2018-06-17 15:53:29 +01:00
' expected_warnings ' : [ ' HTTP Error 404 ' ] ,
2015-01-04 00:05:31 +00:00
} , {
' url ' : ' http://www.tfou.fr/chuggington/videos/le-grand-mysterioso-chuggington-7085291-739.html ' ,
' info_dict ' : {
2015-12-15 21:36:59 +06:00
' id ' : ' le-grand-mysterioso-chuggington-7085291-739 ' ,
2015-01-04 00:05:31 +00:00
' ext ' : ' mp4 ' ,
' title ' : ' Le grand Mystérioso - Chuggington ' ,
2015-01-04 00:43:55 +00:00
' description ' : ' Le grand Mystérioso - Emery rêve qu \' un article lui soit consacré dans le journal. ' ,
' upload_date ' : ' 20150103 ' ,
2015-01-04 00:05:31 +00:00
} ,
' params ' : {
# Sometimes wat serves the whole file with the --test option
' skip_download ' : True ,
} ,
2015-12-15 21:36:59 +06:00
' skip ' : ' HTTP Error 410: Gone ' ,
2015-05-26 13:32:43 +08:00
} , {
' url ' : ' http://www.tf1.fr/tf1/koh-lanta/videos/replay-koh-lanta-22-mai-2015.html ' ,
' only_matching ' : True ,
2015-05-30 16:18:11 +06:00
} , {
' url ' : ' http://lci.tf1.fr/sept-a-huit/videos/sept-a-huit-du-24-mai-2015-8611550.html ' ,
' only_matching ' : True ,
2015-12-15 21:31:58 +06:00
} , {
' url ' : ' http://www.tf1.fr/hd1/documentaire/videos/mylene-farmer-d-une-icone.html ' ,
' only_matching ' : True ,
2019-06-12 13:55:07 +02:00
} , {
' url ' : ' https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/quotidien-premiere-partie-11-juin-2019.html ' ,
' info_dict ' : {
' id ' : ' 13641379 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Quotidien, première partie du 11 juin 2019 ' ,
' description ' : ' Retrouvez l’ intégralité du replay de la première partie de Quotidien du 11 juin. On parle des enfants français rapatriés de Syrie avec Salhia Brakhlia, de la décision du New York Times d’ arrêter les dessins politiques avec Lilia Hassaine, on part voir les Bleues à J-1 de leur rencontre avec la ... ' ,
' upload_date ' : ' 20190611 ' ,
} ,
' params ' : {
# Sometimes wat serves the whole file with the --test option
' skip_download ' : True ,
} ,
2015-05-26 13:32:43 +08:00
} ]
2013-06-29 15:18:19 +02:00
def _real_extract ( self , url ) :
2015-01-04 00:05:31 +00:00
video_id = self . _match_id ( url )
2014-03-29 15:05:15 +01:00
webpage = self . _download_webpage ( url , video_id )
2019-06-12 15:21:54 +02:00
wat_id = self . _html_search_regex (
[ r ' ([ " \' ])(?:https?:)?//www \ .wat \ .tv/embedframe/.*?(?P<id> \ d {8} ) \ 1 ' ,
r ' ([ " \' ]?)streamId \ 1 \ s*: \ s*[ " \' ]?(?P<id> \ d+) ' ] ,
webpage , ' wat id ' , group = ' id ' )
2016-02-22 09:57:12 +01:00
return self . url_result ( ' wat: %s ' % wat_id , ' Wat ' )