
    V|h                     R    S SK r SSKJr  SSKJr  SSKJrJrJrJ	r	   " S S\5      r
g)	    N   )InfoExtractor   )	HTTPError)ExtractorErrorint_or_nonestr_or_nonetry_getc                   T    \ rS rSrSrSrSrSS0rSrSr	S r
S	 rS
 rS rS rS rSrg)ImgGamingBaseIE   z-https://dce-frontoffice.imggaming.com/api/v2/z$857a1e5d-e35e-4fdf-805b-a87b6f8364bfNzAccept-Encodingidentityzlhttps?://(?P<domain>%s)/(?P<type>live|playlist|video)/(?P<id>\d+)(?:\?.*?\bplaylistId=(?P<playlist_id>\d+))?c                 F    SU R                   -   U R                  S.U l        g )Nzdce.)Realmz	x-api-key)_REALM_API_KEY_HEADERSselfs    T/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/imggaming.py_initialize_pre_login%ImgGamingBaseIE._initialize_pre_login   s    dkk)
    c                     U R                   R                  5       nSUS'   SU R                  U R                  S-   S S[        R
                  " UUS.5      R                  5       US9S   -   U R                   S	'   g )
Nzapplication/jsonzContent-TypezBearer loginz
Logging in)idsecret)dataheadersauthorisationTokenAuthorization)r   copy_download_json	_API_BASEjsondumpsencode)r   usernamepassword	p_headerss       r   _perform_loginImgGamingBaseIE._perform_login   s    MM&&(	$6	.!)2T5H5HNNW$,TZZ"1 & vx 6I 6,
 -A6B *Bo&r   c                 d    U R                   R                  S5      (       d  U R                  SS9  g g )Nr!   r)   )method)r   getraise_login_requiredr   s    r   _real_initialize ImgGamingBaseIE._real_initialize%   s-    }}  11%%Z%8 2r   c                 V    U R                  U R                  U-   U-   X R                  S9$ )N)r   )r#   r$   r   )r   pathmedia_ids      r   	_call_apiImgGamingBaseIE._call_api)   s3    ""NNT!H,h # O 	Or   c                    SnUS:X  a  US-  nOUS-  n U R                  X15      S   $ ! [         a  n[        UR                  [        5      (       aj  UR                  R
                  S:X  aP  [        U R                  UR                  R                  R                  5       R                  5       U5      S   S   S	S
9ee S nAff = f)Nstreamvideoz/vod/z	?eventId=playerUrlCallbacki  messagesr   T)expected)
r6   r   
isinstancecauser   status_parse_jsonresponsereaddecode)r   r5   
media_typestream_pathes        r   _extract_dve_api_url$ImgGamingBaseIE._extract_dve_api_url-   s     7"K;&K	>>'':< < 	!''9--!''..C2G$$$QWW%5%5%:%:%<%C%C%ExPQ[\]^_!# # 	s   ) 
CB
B==Cc                   ^ U R                  U5      R                  5       u  p#pEU(       a  U R                  XT5      (       a  SUpCUS:X  a  U R                  SU5      n/ n[	        US 5      =(       d    /  H\  n[        UR                  S5      5      n	U	(       d  M&  UR                  U R                  SU SU	 3U R                  5       U	5      5        M^     U R                  XtUR                  S5      UR                  S5      5      $ U R                  XC5      n
U R                  X5      nUS	:H  nU(       a  U R                  S
U5      S   nOUS   n/ nS H  mUR                  TS-   5      =(       d    [	        UU4S j5      nU(       d  M7  TS:X  ae  U R                  XSUSSU R                  S9nU H?  nUR                  S0 5      R!                  U R                  5        UR                  U5        MA     M  UR#                  U R%                  XSSU R                  S95        M     0 nUR                  S/ 5       HP  nUR                  S5      nU(       d  M  UR                  UR                  SS5      / 5      R                  SU05        MR     UUUUR                  S5      UR                  S5      ['        UR                  S5      5      UR                  S5      UUS.	$ )Nplaylistzvod/playlist/c                     U S   S   $ )Nvideosvods )xs    r   <lambda>/ImgGamingBaseIE._real_extract.<locals>.<lambda>G   s    Qx[5Hr   r   zhttps://z/video/titledescriptionlivezevent/name)hlsdashUrlc                    > U T   S   $ )NurlrO   )rP   protos    r   rQ   rR   \   s    WXY^W_`eWfr   rW   mp4F)rU   m3u8_idfatalr   http_headersrX   )mpd_idr_   r   	subtitlesr[   langen_USthumbnailUrldurationtags)	r   rS   formats	thumbnailrT   rf   rg   is_liverb   )_match_valid_urlgroups_yes_playlistr6   r
   r	   r/   append
url_resultie_keyplaylist_resultrH   r#   _extract_m3u8_formats_MANIFEST_HEADERS
setdefaultupdateextend_extract_mpd_formatsr   )r   r[   domainrE   r5   playlist_idrK   entriesr:   video_iddve_api_url
video_datarj   rS   rh   	media_urlm3u8_formatsfrb   subtitlesubtitle_urlr\   s                        @r   _real_extractImgGamingBaseIE._real_extract=   s   484I4I#4N4U4U4W1H!!+88'1;H#~~ox@HG +HIORO&uyy7tvhghZ8KKM8 - .	 P ''8<<#8]+- - //E((?
&NN8X6w?Ev&E$E"uu}5gMf9gI~#99W!8N8N  :  P &ALL4;;D<R<RSNN1% & t88e 22  9  4 5 %  	"{B7H#<<.L  fg!>CJJ|L 	 8 #7%>>-8#JNN:$>?NN6*"

 
	
r   )r   )__name__
__module____qualname____firstlineno__r$   r   r   rs   r   _VALID_URL_TEMPLr   r+   r1   r6   rH   r   __static_attributes__rO   r   r   r   r      sK    ?I5HH*J7F G
B9O A
r   r   )r%   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   rO   r   r   <module>r      s&     ! - q
m q
r   