
    VGh                     N    d dl Z ddlmZ ddlmZ ddlmZmZmZ  G d de      Z	y)	    N   )RadioCanadaIE   )	HTTPError)ExtractorErrorint_or_nonemerge_dictsc                   X    e Zd ZdZdZdZdddddd	d
ddiddddddddgZdZd Zd Z	y)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                 $   	 | j                  dd dt        j                  | j                  d||dd      j	                         d| j                  z   dd	      d
   | _        | j                  d      d   | _        y # t        $ r}t        |j                  t              rk|j                  j                  dk(  rR| j                  |j                  j                  j                         j                         d       d   }t        |d       d }~ww xY w)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        _/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/toutv.py_perform_loginz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A; ;	DBD

Dc                    | j                  |      }| j                  d| || j                  ddd      }| j                  d      s#|j	                  d      r| j                  d|       |d	   }|d
   }t        ||j	                  d      |j	                  d      |j	                  d      t        |j	                  d            |j	                  d      t        |j	                  d            |j	                  d      t        |j	                  d            |j	                  d      d
| j                  |j	                  dd      |            S )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)r7   r   pathmetadatavideo_iddetailss         r<   _real_extractzTouTvIE._real_extract=   s5   ~~c"&&B4&I4"..X '  ~~89hll7>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    N)
__name__
__module____qualname___NETRC_MACHINEIE_NAME
_VALID_URL_TESTSr+   r=   rc    rd   r<   r   r      su    NGWJ @.2%
 T
   + 9#F* 9KK*Krd   r   )
r)   radiocanadar   networking.exceptionsr   utilsr   r   r	   r   rl   rd   r<   <module>rp      s(     & - KKm KKrd   