
    yfB                         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 ddlmZ  G d	 d
e      Z G d de      Z G d de      Z G d de      Zy)    N   )InfoExtractor)DailymotionIE   )HEADRequest)	determine_extfilter_dictformat_fieldint_or_nonejoin_nonemptyparse_iso8601smuggle_urlunsmuggle_urlurl_or_none)traverse_objc                       e Zd ZddZy)FranceTVBaseInfoExtractorNc                     |j                  d      d   }d| }|r5t        |dt        j                  j	                  |      j
                  i      }| j                  |t        |      S )N@r   z	francetv:hostname)splitr   urllibparseurlparser   
url_result
FranceTVIE)selfvideo_idurlfull_ids       ;/usr/lib/python3/dist-packages/yt_dlp/extractor/francetv.py_make_url_resultz*FranceTVBaseInfoExtractor._make_url_result   s]    >>#&q)hZ(!'J8M8Mc8R8[8[+\]Gw
H==    N)__name__
__module____qualname__r"    r#   r!   r   r      s    >r#   r   c            	       z    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dddddddgZddZd Zy)r   zfrancetv:(?P<id>[^@#]+)FRFz-francetv:ec217ecc-0733-48cf-ac06-af1347b849d1$ec217ecc-0733-48cf-ac06-af1347b849d1mp4/   13h15, le dimanche... - Les mystères de Jésus7Y
  re:^https?://.*\.jpg$20170813idexttitle	timestampduration	thumbnailupload_dateskip_downloadm3u8r   	info_dictparamszfrancetv:162311093Tr   only_matchingzfrancetv:NI_1004933@Zouzouszfrancetv:NI_983319@Info-webzfrancetv:NI_983319zfrancetv:NI_657393@Regionszfrancetv:SIM_France3Nc                    d }g }d }d }d }d }d }	d }
d }d }dD ]*  \  }}| j                  d| |d| d| dt        |||d      d      }|s7t        |d	t        hf      }|rJ|j	                  |       |
|j                  d
      }
||j                  d      }||j                  d      }t        |dt        hf      }|s||j                  d      }| j                  d|j                  d      ddd      \  }}||j                  d      }|	|j                  d      }	|t        |j                  d            }- g i d }}}t        |d       D ]  }|d   }|j                  d      }t        |j                  d            x}r2t        | j                  ||d| ddd|d       dt        hf      }|r|}t        |      }|d!k(  r)|j                  | j                  |||xs |d"             |d#k(  r|xs d$}| j                  ||d%|d&      \  }}t        |d'       D ]M  }t        j                  | d(|d)         x}s"|j                  t!        |j#                  d*            d+d,       O |j                  |       | j%                  ||-       H|d.k(  rB| j'                  |||xs d/d0      \  }}|j                  |       | j%                  ||-       |j)                  d1      r!|j	                  |t+        d1|      d2d3       | j-                  |||      s|j	                  ||d4        |s^|r\| j/                  t1        |      |d5dd67      }|r;|j2                  j                  d8      d9k(  r| j5                  | j6                  d:;       |D ]C  }|j                  d<      d=k7  s|j                  d>      d?v s,d@|dA<   dBt9        |dCdD      z  |dC<   E |r<|j	                  ddEd=d=dFdFdGt        |dHt        hf      D cg c]  }|dIdJ	 c}dK       |t+        ||dLM      j;                         |	|
|||||r|nd |r|nd t!        |      t!        |      dNdOS c c}w )PN))desktopchrome)mobilesafarizhttps://k7.ftven.fr/videos/zDownloading  z video JSON)device_typebrowserdomainF)queryfatalvideor7   is_livespritesheetsmetar5   zS(\d+)\s*E(\d+)	pre_titlezepisode info)r   r   )NN)groupdefaultadditional_title	image_urlbroadcasted_atc                     t        |d         S )Nr   )r   _vs     r!   <lambda>z+FranceTVIE._extract_video.<locals>.<lambda>v   s    {1U87L r#   r   formattokenzDownloading signed z manifest URLjson)r[   r   )rK   rJ   f4m)f4m_idrK   r;   hlsr,   )m3u8_idrK   c                 <    |d   dk(  xr |j                  d      d u S )Nvcodecnonetbr)getrW   s     r!   rZ   z+FranceTVIE._extract_video.<locals>.<lambda>   s'    89N9gSTSXSXY^S_cgSg r#   z-[Aa]udio-\w+-(?P<bitrate>\d+)	format_idbitratemp4a)re   acodec)targetmpddash)mpd_idrK   rtmpflv)r   rg   r4   )r   rg   zChecking for geo-restrictioni  )rK   expected_statuszx-errortypegeoT)	countriesmetadata_availablerj   rd   language)qtzqadilanguage_preferencezaudio description%sformat_notez, %s
storyboardmhtmlzabout:invalid.   )r   r7   )rg   ry   rj   rc   r4   protocolr   	fragmentsz - )delim)resre   proto)r3   r5   r8   r7   r6   rM   formats	subtitlesepisodeseriesepisode_numberseason_number_format_sort_fields)_download_jsonr	   r   dictappendrf   _search_regexr   r   r   extend_extract_f4m_formats#_extract_m3u8_formats_and_subtitlesrematchupdater   rQ   _merge_subtitles"_extract_mpd_formats_and_subtitles
startswithr   _is_valid_url_request_webpager   headersraise_geo_restricted_GEO_COUNTRIESr
   strip)r   r   r   rM   videosr5   subtitler   r   imager7   r6   rN   rG   rH   dinforL   rO   r   r   	video_urlrg   	token_urltokenized_urlr4   fmtssubsfmobjurlhsheets                                  r!   _extract_videozFranceTVIE._extract_videoD   s_   	 %R "	J K''-hZ8({m1WI[A#.&&V J   ( !E  4&(9:Ee$#$yy4H?#ii	2G'#(99^#<L'78D= HHW-E040B0B&(=~U[eq 1C 1s-~##xx(:;H= HH[1E$ -dhh7G.H IIE"	JH )+BI!&*LM .	EeI		(+I'		'(:;;y; ,T-@-@x+>yk)W"((( .A .
 .!0 ! -I	*Ce|t88x	0@S  9  O P%.	!EEx	 F P
d%d,gh A!xxI;6T(UWXYdWefftf#.tzz)/D#E&,"  t$%%d9%=!DDx	0CV5 E R
dt$%%d9%=%%f-$!.vy!A    %%i9ENN(%.$ W.	d 9((I&2PS ) 2D ((75@))D4G4G\`)a 	bAuuX&(QUU:->.-P+.'(#8<=Z`;a#a- 	b
 NN++  #&  ,L3:NOQ  ! !$ Q $ "5(%@FFH ""#1xt-e4).9(7#:
 	
Qs   Q/c                     t        |i       \  }}| j                  |      }|j                  d      xs d}| j                  ||      S )Nr   zwww.france.tv)r   )r   	_match_idrf   r   )r   r   smuggled_datar   r   s        r!   _real_extractzFranceTVIE._real_extract   sL    *33]>>#& $$Z0CO""8h"??r#   r$   )	r%   r&   r'   
_VALID_URLr   _GEO_BYPASS_TESTSr   r   r(   r#   r!   r   r      s    +JVNK ?8F#1%
 #F+ $ - - $ ,
 &7FBP
d@r#   r   c                       e Zd ZdZdddddddd	d
ddiej                         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d0 Zy1)2FranceTVSiteIEzShttps?://(?:(?:www\.)?france\.tv|mobile\.france\.tv)/(?:[^/]+/)*(?P<id>[^/]+)\.htmlzRhttps://www.france.tv/france-2/13h15-le-dimanche/140921-les-mysteres-de-jesus.htmlr+   r,   r-   r.   r/   r0   r1   r2   r:   Tr   r=   r>   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 portFoot2Ruer   ia20220121zSeason 1i  )r3   r4   r5   r   r   r   r   r6   r9   seasonr8   r7   )r   r=   z*https://www.france.tv/france-4/direct.htmlz$9a6a7670-dde9-4264-adbc-55b89558594bzre:France 4 en direct .+rM   )r3   r4   r5   live_statuszgeo-restricted livestream)r   r=   skipz*https://www.france.tv/france-2/direct.htmlz$006194ea-117d-4bcf-94a9-153d999c59aezre:France 2 en direct .+
livestreamr<   zchttps://www.france.tv/france-3/des-chiffres-et-des-lettres/139063-emission-du-mardi-9-mai-2017.htmlr?   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                     | j                  |      }| j                  ||      }| j                  d|dd d      }|s| j                  d|d      }| j	                  ||      S )NzL(?:data-main-video\s*=|videoId["\']?\s*[:=])\s*(["\'])(?P<id>(?:(?!\1).)+)\1video idr3   )rR   rQ   zR(?:href=|player\.setVideo\(\s*)"http://videos?\.francetv\.fr/video/([^@"]+@[^"]+)"zvideo IDr   )r   _download_webpager   _html_search_regexr"   )r   r   
display_idwebpager   s        r!   r   zFranceTVSiteIE._real_extract7  sx    ^^C(
((j9%%[ZT & ; ..e%H $$X3$77r#   N)r%   r&   r'   r   r   ie_keyr   r   r(   r#   r!   r   r      sM   gJ d8F#1%
 T
 $$&'" n84+ #% 1
& <80$	
 ,
 <80$	
 #L1
 u ^ X \
 x q m >
 <aTFl8r#   r   c                       e Zd ZdZdZddddddd	d
ddidddiej                         gddddddd	ddddddiej                         gddddddddddddd dd!d"d#d$d%d&eg d'd(d)ed*d+d,gd-d.ddd/ddgZd0 Z	y1)2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 320190822i_]zre:^https?://.*\.jpe?g$ie  frz
mincount:2)r3   r4   r5   r9   r6   r8   r7   r   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`20210421)r3   r4   r5   r8   r7   r6   r9   )noter   r=   r>   r   zhttp://www.francetvinfo.fr/elections/europeennes/direct-europeennes-regardez-le-debat-entre-les-candidats-a-la-presidence-de-la-commission_600639.htmlr?   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.html ee7f1828f25a648addc90cb2687b1f12x4iiko0uD   NDDL, référendum, Brexit : Cécile Duflot répond à Patrick Cohenz$md5:fdcb582c370756293a65cdfbc6ecd90eivpWFrance Interx2q2ez20160627)	Politiquer   z27 juin 2016u   Linvité de 8h20u   Cécile DuflotzPatrick Cohenr   i  z"re:https://[^/?#]+/v/[^/?#]+/x1080)r3   r4   r5   descriptionr6   uploaderuploader_idr9   
view_counttags	age_limitr7   
like_countr8   Dailymotion)r   md5r=   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           
      b   | j                  |      }| j                  ||      }t        t        j                  ||            }|rA| j                  |D cg c]&  }| j                  |t        j                               ( c}      S | j                  d|d      }| j                  ||      S c c}w )N)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   _extract_embed_urlsplaylist_resultr   r   r   r"   )r   r   r   r   dailymotion_urlsdailymotion_urlr   s          r!   r   zFranceTVInfoIE._real_extract  s    ^^C(
((j9 !B!B3!PQ'''7)9# 1E1E1GH)9 : : %%m Z! $$X3$77)9s   +B,N)
r%   r&   r'   IE_NAMEr   r   r   intr   r   r(   r#   r!   r   r   H  s9   GjJ w8%#3l
 T
 $$&'#& O N8p3#%
 T
 $$&'" h A V
 k1[A#&#%x>
  !/), \
 tGGFR8r#   r   )r   urllib.parser   commonr   dailymotionr   
networkingr   utilsr   r	   r
   r   r   r   r   r   r   utils.traversalr   r   r   r   r   r(   r#   r!   <module>r      sd    	  ! & $
 
 
 +> >}@ }@@g8. g8T_8. _8r#   