
    V|h                     N    S SK r SSKJr  SSKJr  SSKJrJrJr   " S S\5      r	g)	    N   )RadioCanadaIE   )	HTTPError)ExtractorErrorint_or_nonemerge_dictsc                   `    \ rS rSrSrSrSrSSSSS	S
S.SS0SS.SSS.SSS./rSrS r	S r
Srg)TouTvIE   toutvztou.tvzChttps?://ici\.tou\.tv/(?P<id>[a-zA-Z0-9_-]+(?:/S[0-9]+[EC][0-9]+)?)z.http://ici.tou.tv/garfield-tout-court/S2015E17122017mp4u   Saison 2015 Épisode 17zLa photo de famille 220100717)idexttitledescriptionupload_dateskip_downloadTz404 Not Found)url	info_dictparamsskipzhttp://ici.tou.tv/hackers)r   only_matchingz'https://ici.tou.tv/l-age-adulte/S01C501z$90505c8d-9c34-4f34-8da1-3a85bdc6d4f4c                 (    U R                  SS S[        R                  " U R                  SUUSS.5      R	                  5       SU R                  -   SS.S	9S
   U l        U R                  S5      S   U l        g ! [         a  n[        UR                  [        5      (       ai  UR                  R                  S:X  aO  U R                  UR                  R                  R                  5       R                  5       S 5      S   n[        USS9ee S nAff = f)Nz?https://services.radio-canada.ca/toutv/profiling/accounts/loginz
Logging inz$34026772-244b-49b6-8b06-317b30ac9a20zid.write media-validation.read)ClientIdClientSecretEmailPasswordScopezclient-key zapplication/json;charset=utf-8)AuthorizationzContent-Type)dataheadersaccess_tokeni  MessageT)expectedzvalidation/v2/getClaimsclaims)_download_jsonjsondumps_CLIENT_KEYencode_access_tokenr   
isinstancecauser   status_parse_jsonresponsereaddecode	_call_api_claims)selfusernamepasswordeerrors        P/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/toutv.py_perform_loginTouTvIE._perform_login(   s   	!%!4!4Ql $ 0 0$J% (=5 * 68%2T5E5E%E$D& "5 " ""#D" ~~&?@J  	!''9--!''..C2G(()9)9)>)>)@)G)G)I4PQZ[$UT::		s   AA9 9
DB	DDc                    U R                  U5      nU R                  SU 3UU R                  SSS.S9nU R                  S5      (       d(  UR	                  S5      (       a  U R                  SU5        US	   nUS
   n[        UUR	                  S5      UR	                  S5      UR	                  S5      [        UR	                  S5      5      UR	                  S5      [        UR	                  S5      5      UR	                  S5      [        UR	                  S5      5      UR	                  S5      S.
U R                  UR	                  SS5      U5      5      $ )Nz4https://services.radio-canada.ca/toutv/presentation/web   )
client_keydeviceversion)queryallow_unplayable_formatsIsDrmz%This video is probably DRM protected.IdMediaDetailsOriginalTitleDescriptionImageUrlLengthInSecondsProgramTitleSeasonNumberSeasonTitleEpisodeNumberEpisodeTitle)
r   r   r   	thumbnaildurationseriesseason_numberseasonepisode_numberepisodeAppCoder   )		_match_idr)   r,   	get_paramgetreport_warningr	   r   _extract_info)r8   r   pathmetadatavideo_iddetailss         r=   _real_extractTouTvIE._real_extract=   s;   ~~c"&&B4&I4"..X '  ~~899hll7>S>S GNI&9%[[1";;}5 Z0#GKK0A$BCll>2(n)EFll=1)(,,*GH||N3
 hll9g>IK 	K    )r.   r7   N)__name__
__module____qualname____firstlineno___NETRC_MACHINEIE_NAME
_VALID_URL_TESTSr,   r>   re   __static_attributes__ rg   r=   r   r      su    NGWJ @.2%
 T
   + 9#F* 9KK*Krg   r   )
r*   radiocanadar   networking.exceptionsr   utilsr   r   r	   r   rq   rg   r=   <module>ru      s(     & - KKm KKrg   