U
    gG                     @   s   d dl Z d dlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZ ddlmZ G d	d
 d
eZG dd deZG dd deZG dd deZdS )    N   )InfoExtractor)DailymotionIE   )HEADRequest)

clean_htmldetermine_extfilter_dictformat_fieldint_or_nonejoin_nonemptyparse_iso8601smuggle_urlunsmuggle_urlurl_or_none)traverse_objc                   @   s   e Zd ZdddZdS )FranceTVBaseInfoExtractorNc                 C   sB   | dd }d| }|r4t|dtj|ji}| |t|S )N@r   z	francetv:hostname)splitr   urllibparseurlparser   
url_result
FranceTVIE)selfvideo_idurlZfull_id r   =/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/francetv.py_make_url_result   s
    
z*FranceTVBaseInfoExtractor._make_url_result)N)__name__
__module____qualname__r    r   r   r   r   r      s   r   c                
   @   s   e Zd ZdZdgZdZdddddd	d
ddddidddddddd
ddddidddddddddddddddddddgZd"ddZd d! ZdS )#r   zfrancetv:(?P<id>[^@#]+)ZFRFz-francetv:ec217ecc-0733-48cf-ac06-af1347b849d1z$ec217ecc-0733-48cf-ac06-af1347b849d1mp4/   13h15, le dimanche... - Les mystères de Jésusi7Yi
  re:^https?://.*\.jpg$Z20170813idexttitle	timestampduration	thumbnailupload_dateskip_downloadm3u8r   	info_dictparamsz-francetv:c5bda21d-2c6f-4470-8849-3d8327adb2ba$c5bda21d-2c6f-4470-8849-3d8327adb2ba霜?Z@  20171224zfrancetv:162311093Tr   Zonly_matchingzfrancetv:NI_1004933@Zouzouszfrancetv:NI_983319@Info-webzfrancetv:NI_983319zfrancetv:NI_657393@Regionszfrancetv:SIM_France3Nc                  C   s  d }g }d}d }d }d }d }	d }
d }d }d }dD ]\}}| j d| |d| d| dt|||dddd	}|svq0t|d
thf }r|| |d kr|d}|d kr|d}|d kr|d}nht|dthf }r4|dkr| j| jd n|dkr
d}q0| 	| j
 d| dt|d d q0t|dthf }r0|d kr\|d}| jd|ddddd\}	}|d kr|d}|
d kr|d }
|d kr0t|d!}q0|s|r| | g i d   }}}t|d"d# D ]}|d$ }|d%}t|d&d[thtf }rXt| j ||d(| d)dd*|d+d,d$thf}|rX|}t|}|d-kr|| j|||p~|dd. q|d/kr|pd0}| j||d1|dd2\}}t|d3d# D ]<}t| d4|d5  }r|t|d6d7d8 q|| | j||d9 n|d:kr^| j|||p8d;dd<\}}|| | j||d9 nF|d=r||td=|d>d? n | |||r|||d@ q|s|r| jt ||dAddBdC}|r|j!dDdEkr| j| jddF |D ]D}|dGdHkr|dIdJkrdK|dL< dM"t#|dNdO|dN< q|rv|ddPdHdHdQdQdRdSdT t|dUthfD dV |t||dWdX$ |
||||||r|nd |r|nd t|t|	dYdZS )\NF))ZdesktopZchrome)ZmobileZsafarizhttps://k7.ftven.fr/videos/zDownloading  z video JSON)device_typebrowserdomaini  )queryfatalexpected_statusvideor,   is_livespritesheetscodei  )	countries)i  i  Tz said: z "message"metar*   zS(\d+)\s*E(\d+)Z	pre_titlezepisode info)r   r   )NN)groupdefaultZadditional_titleZ	image_urlZbroadcasted_atc                 S   s   t |d S )Nr   )r   _vr   r   r   <lambda>       z+FranceTVIE._extract_video.<locals>.<lambda>r   formattokenakamaizDownloading signed z manifest URLjson)rO   r   )r>   r=   Zf4m)Zf4m_idr>   r0   Zhlsr$   )Zm3u8_idr>   c                 S   s   |d dko| dd kS )Nvcodecnonetbr)getrJ   r   r   r   rM      rN   z-[Aa]udio-\w+-(?P<bitrate>\d+)	format_idZbitrateZmp4a)rU   acodec)targetZmpdZdash)Zmpd_idr>   ZrtmpZflv)r   rW   r)   )r   rW   zChecking for geo-restrictioni  )r>   r?   zx-errortypeZgeo)rD   Zmetadata_availablerX   rT   language)ZqtzZqadiZlanguage_preferencezaudio description{}format_notez, %sZ
storyboardZmhtmlzabout:invalidc                 S   s   g | ]}|d dqS )   )r   r,   r   ).0Zsheetr   r   r   
<listcomp>   s   z-FranceTVIE._extract_video.<locals>.<listcomp>.)rW   r[   rX   rS   r)   protocolr   Z	fragmentsz - )delim)resrU   proto)r(   r*   r-   r,   r+   rA   formats	subtitlesepisodeseriesepisode_numberseason_numberZ_format_sort_fields)NrQ   )%Z_download_jsonr	   r   dictappendrV   intZraise_geo_restricted_GEO_COUNTRIESZreport_warningIE_NAMEr   _search_regexr   Z
report_drmr   anyr   extendZ_extract_f4m_formatsZ#_extract_m3u8_formats_and_subtitlesrematchupdater   rH   Z_merge_subtitlesZ"_extract_mpd_formats_and_subtitles
startswithr   Z_is_valid_urlZ_request_webpager   headersrO   r
   strip) r   r   r   rA   ZvideosZdrm_formatsr*   Zsubtitlerg   rh   imager,   r+   rB   r:   r;   Zdinfor@   rC   rG   rc   rd   Z	video_urlrW   Z	token_urlZtokenized_urlr)   ZfmtssubsfZmobjZurlhr   r   r   _extract_videoS   sL      



 

    






  

   

    


   


    zFranceTVIE._extract_videoc                 C   s4   t |i \}}| |}|dp$d}| j||dS )Nr   zwww.france.tv)r   )r   	_match_idrV   rz   )r   r   Zsmuggled_datar   r   r   r   r   _real_extract   s    
zFranceTVIE._real_extract)N)	r!   r"   r#   
_VALID_URLrl   Z_GEO_BYPASS_TESTSrz   r|   r   r   r   r   r      s^   		/
  r   c                   @   s   e Zd ZdZdddddddd	d
ddie gdddddddddddddddddddddddd d!d"dd#dddd$id%d&dd'd(dd'd)dd'd*dd'd+dd'd,dd'd-dd'd.dd'd/dd'gZd0d1 Zd2S )3FranceTVSiteIEzShttps?://(?:(?:www\.)?france\.tv|mobile\.france\.tv)/(?:[^/]+/)*(?P<id>[^/]+)\.htmlzRhttps://www.france.tv/france-2/13h15-le-dimanche/140921-les-mysteres-de-jesus.htmlr4   r$   r%   r5   r6   r&   r7   r'   r/   Tr   r2   r3   add_iez\https://www.france.tv/enfants/six-huit-ans/foot2rue/saison-1/3066387-duel-au-vieux-port.htmlz$a9050959-eedd-4b4a-9b0d-de6eeaa73e44zFoot2Rue - Duel au vieux portzDuel au vieux portZFoot2Ruer   iaZ20220121zSeason 1i  )r(   r)   r*   re   rf   rg   rh   r+   r.   Zseasonr-   r,   )r   r2   z*https://www.france.tv/france-4/direct.htmlz$9a6a7670-dde9-4264-adbc-55b89558594bzre:France 4 en direct .+rA   )r(   r)   r*   Zlive_statuszgeo-restricted livestream)r   r2   skipz*https://www.france.tv/france-2/direct.htmlz$006194ea-117d-4bcf-94a9-153d999c59aezre:France 2 en direct .+Z
livestreamr1   zchttps://www.france.tv/france-3/des-chiffres-et-des-lettres/139063-emission-du-mardi-9-mai-2017.htmlr8   zLhttps://www.france.tv/france-4/hero-corp/saison-1/134151-apres-le-calme.htmlzFhttps://www.france.tv/france-5/c-a-dire/saison-10/137013-c-a-dire.htmlzJhttps://www.france.tv/france-o/archipels/132249-mon-ancetre-l-esclave.htmlzfhttps://www.france.tv/documentaires/histoire/136517-argentine-les-500-bebes-voles-de-la-dictature.htmlz_https://www.france.tv/jeux-et-divertissements/divertissements/133965-le-web-contre-attaque.htmlz[https://mobile.france.tv/france-5/c-dans-l-air/137347-emission-du-vendredi-12-mai-2017.htmlz,https://www.france.tv/142749-rouge-sang.htmlz*https://www.france.tv/france-3/direct.htmlc                 C   sJ   |  |}| ||}| jd|dd dd}|s<| d|d}| j||dS )NzL(?:data-main-video\s*=|videoId["\']?\s*[:=])\s*(["\'])(?P<id>(?:(?!\1).)+)\1video idr(   )rI   rH   zR(?:href=|player\.setVideo\(\s*)"http://videos?\.francetv\.fr/video/([^@"]+@[^"]+)"zvideo IDr   )r{   _download_webpagern   Z_html_search_regexr    )r   r   
display_idwebpager   r   r   r   r|   S  s     
    zFranceTVSiteIE._real_extractN)r!   r"   r#   r}   r   ie_keyr~   r|   r   r   r   r   r      s   
 Vr   c                   @   s   e Zd ZdZdZddddddd	d
ddidddie gddddddd	ddddddie gddddddddddddd dd!d"d#d$d%d&ed'd$d(d)d*d+gd,d-ed.d/d0gd1d2ddd3ddgZd4d5 Z	d6S )7FranceTVInfoIEzfrancetvinfo.frzVhttps?://(?:www|mobile|france3-regions)\.francetvinfo\.fr/(?:[^/]+/)*(?P<id>[^/?#&.]+)zehttps://www.francetvinfo.fr/replay-jt/france-3/soir-3/jt-grand-soir-3-jeudi-22-aout-2019_3561461.htmlz$d12458ee-5062-48fe-bfdd-a30d6a01b793r$   zSoir 3Z20190822i_]zre:^https?://.*\.jpe?g$ie  frz
mincount:2)r(   r)   r*   r.   r+   r-   r,   rd   r/   Tr   z<Only an image exists in initial webpage instead of the videoz|https://www.francetvinfo.fr/sante/maladie/coronavirus/covid-19-en-inde-une-situation-catastrophique-a-new-dehli_4381095.htmlz$7d204c9e-a2d3-11eb-9e4c-000d3a23d482uY   Covid-19 : une situation catastrophique à New Dehli - Édition du mercredi 21 avril 2021L   i&j`Z20210421)r(   r)   r*   r-   r,   r+   r.   )Znoter   r2   r3   r   zhttp://www.francetvinfo.fr/elections/europeennes/direct-europeennes-regardez-le-debat-entre-les-candidats-a-la-presidence-de-la-commission_600639.htmlr8   zohttp://www.francetvinfo.fr/economie/entreprises/les-entreprises-familiales-le-secret-de-la-reussite_933271.htmlzhttp://france3-regions.francetvinfo.fr/bretagne/cotes-d-armor/thalassa-echappee-breizh-ce-venredi-dans-les-cotes-d-armor-954961.htmlzhttp://www.francetvinfo.fr/politique/notre-dame-des-landes/video-sur-france-inter-cecile-duflot-denonce-le-regard-meprisant-de-patrick-cohen_1520091.htmlZ ee7f1828f25a648addc90cb2687b1f12Zx4iiko0uD   NDDL, référendum, Brexit : Cécile Duflot répond à Patrick Cohenz$md5:fdcb582c370756293a65cdfbc6ecd90eivpWzFrance InterZx2q2ezZ20160627Z	Politiquez27 juin 2016u   Linvité de 8h20u   Cécile DuflotzPatrick Cohenr   i  z"re:https://[^/?#]+/v/[^/?#]+/x1080)r(   r)   r*   descriptionr+   ZuploaderZuploader_idr.   Z
view_counttagsZ	age_limitr,   Z
like_countr-   ZDailymotion)r   md5r2   r   zJhttp://france3-regions.francetvinfo.fr/limousin/emissions/jt-1213-limousinzhttps://www.francetvinfo.fr/culture/patrimoine/incendie-de-notre-dame-de-paris/notre-dame-de-paris-de-l-incendie-de-la-cathedrale-a-sa-reconstruction_4372291.htmlc                    s^     |} ||}tt||}|rB  fdd|D S  d|d} j||dS )Nc                    s   g | ]}  |t qS r   )r   r   r   )r]   Zdailymotion_urlr   r   r   r^     s   z0FranceTVInfoIE._real_extract.<locals>.<listcomp>)z&player\.load[^;]+src:\s*["\']([^"\']+)zid-video=([^@]+@[^"]+)zD<a[^>]+href="(?:https?:)?//videos\.francetv\.fr/video/([^@]+@[^"]+)"z[(?:data-id|<figure[^<]+\bid)=["\']([\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})r   r   )r{   r   tupler   Z_extract_embed_urlsZplaylist_resultrn   r    )r   r   r   r   Zdailymotion_urlsr   r   r   r   r|     s    
 zFranceTVInfoIE._real_extractN)
r!   r"   r#   rm   r}   r   r   rk   r~   r|   r   r   r   r   r   d  s     
 Ir   )rq   urllib.parser   commonr   Zdailymotionr   Z
networkingr   utilsr   r   r	   r
   r   r   r   r   r   r   Zutils.traversalr   r   r   r   r   r   r   r   r   <module>   s   0	 \j