
    V|h,                     b    S SK r SSKJr  SSKJrJrJrJrJrJ	r	J
r
JrJrJrJr   " S S\5      rg)    N   )AdobePassIE   )ExtractorErrordetermine_extfix_xml_ampersandsfloat_or_noneint_or_noneparse_durationstrip_or_noneupdate_url_queryurl_or_none
xpath_attr
xpath_textc                   B    \ rS rSr0 rS rS	S jr0 0 S4S jrS	S jrSr	g)
TurnerBaseIE   c                 .    [        [        USS5      5      $ )NdateCreateduts)r
   r   )self
video_datas     Q/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/turner.py_extract_timestampTurnerBaseIE._extract_timestamp   s    :j-GHH    Nc                    U R                  SUS5      S-   nU R                  R                  U5      nU(       d  SU0n	U(       a  U	R                  U5        OX9S'   UR                  S5      (       a   U R	                  US   X4S   US   U5      U	S	'   U R                  XU	S
9n
[        U
S5      nU(       a
  [        USS9e[        U
S5      nU(       d  U$ XR                  U'   US-   U-   $ )Nzhttps?://[^/]+(.+/)zsecure path*pathvideoIdauth_requiredurl	site_nameaccessToken)queryz	error/msgT)expectedtoken?hdnea=)_search_regex_AKAMAI_SPE_TOKEN_CACHEgetupdate_extract_mvpd_auth_download_xmlr   r   )r   tokenizer_src	video_url
content_idap_datasoftware_statementcustom_tokenizer_querysecure_pathr'   r%   auth	error_msgs               r   _add_akamai_spe_token"TurnerBaseIE._add_akamai_spe_token   s   (()?MZ]``,,00=E &34#-i {{?++'+'>'>ENJ0DgkFZ\n(pm$%% & 8D"45I$Y>>tW-E  8=((59$u,,r   Fc                    U R                  XS US9nU(       d  0 $ UR                  S   n[        USSS9n[        US5      =(       d    Un	/ n
/ n/ n0 n[        R                  " S5      nUR                  S	5       GH  n[        UR                  R                  5       5      nU(       d  M0  [        U5      nUR                  S
5      (       a  MS  UR                  S5      (       a8  UR                  S5      nU(       d  M  U R                  US   US   U-   XU5      nO][        R                  " SU5      (       dA  UR                  UUR                  S0 5      5      nUR                  S5      nU(       d  M  UU-   nUU
;   a  GM  U
R                  U5        UR                  S5      nUS;   a'  UR                  S/ 5      R                  UUS.5        GMV  US:X  a  UR                  UUS.5        GMs  US:X  a#  UR!                  U R#                  UUSS95        GM  [        R                  " SU5      (       aG  UR!                  U R%                  UUUR                  S0 5      R                  S5      SS.5      5        GM  US:X  aN  U R'                  UUSU=(       d    S SS!9nSU;   a  S"U;   a  U H  nS#S$S%/0US&'   M     UR!                  U5        GMS  US:X  a9  UR!                  U R)                  [+        US'S(05      UU=(       d    S)SS*95        GM  UUUS+.nUR-                  U5      nU(       a^  UR/                  [1        UR3                  S,5      5      [1        UR3                  S-5      5      [5        UR3                  S5      5      S..5        O[7        U[8        5      (       a  UR;                  5       (       a  [1        U5      US/'   Oe[        R                  " S0U5      nU(       aG  UR3                  S15      S2:X  a  UR/                  S3S4S5.5        O[1        UR3                  S15      5      US/'   UR                  U5        GM     UR                  S65       H  nUR                  S75       H  n[        UR                  S85      5      nU(       a  UR=                  S95      (       a  M<  UR                  S:5      =(       d    UR                  S;5      =(       d    SnUR                  U/ 5      R                  US<S=S>S?.R                  UR                  S@5      5      SA.5        M     M     UR!                  SB UR                  SC5       5       5        [        USD5      SE:H  nUUUUU[        USF5      [?        [        USG5      5      [A        [        USH5      =(       d    [        USI5      5      U RC                  U5      [E        USJSK5      [        USL5      [5        [        USM5      5      [5        [        USN5      5      USO.$ )PNc                 4    [        U 5      R                  5       $ N)r   strip)ss    r   <lambda>0TurnerBaseIE._extract_cvp_info.<locals>.<lambda>5   s    '9!'<'B'B'Dr   )transform_sourcefatalidheadlineT)rB   	contentIdz=(?P<width>[0-9]+)x(?P<height>[0-9]+)(?:_(?P<bitrate>[0-9]+))?z.//filez/mp4:protected/z/secure/securer/   	media_srcz	https?://defaultbitrate)sccsrtvtten)extr"   png)rC   r"   smilFz#https?://[^/]+\.akamaihd\.net/[iz]/f4mhostzpmd.cdn.turner.com)hdshttpm3u8mp4hls)m3u8_idrB   r(   ffmpeg_args	-seekable0downloader_optionshdcorez3.7.0rS   )f4m_idrB   )	format_idr"   rN   widthheight)r`   ra   tbrrb   zios_(audio|[0-9]+)$r   audiononem4a)vcodecrN   zclosedCaptions/sourcetrackr"   z/biglanglabelrJ   rL   tt)rJ   webvttsmptettformat)r"   rN   c           	   3      #    U  Hm  nUR                  S 5      =(       d    UR                  S5      UR                  [        UR                  S5      5      [        UR                  S5      5      S.v   Mo     g7f)cutnamer`   ra   )rC   r"   r`   ra   N)r+   textr
   ).0images     r   	<genexpr>1TurnerBaseIE._extract_cvp_info.<locals>.<genexpr>   s`      ;
 :e	 ))E"7eii&7:: 7!34!%))H"56	

 :s   A5A7zimages/imageisLivetrueposterdescriptionlengthtrtmetasversion	showTitleseasonNumberepisodeNumber)rC   titleformats	subtitles
thumbnails	thumbnailry   duration	timestampupload_dateseriesseason_numberepisode_numberis_live)#r.   attribr   recompilefindallr   rq   r=   r   
startswithr+   r8   matchappend
setdefaultextend_extract_smil_formats_extract_akamai_formats_extract_m3u8_formats_extract_f4m_formatsr   searchr,   intgroupr
   
isinstancestrisdigitendswithr   r   r   r   )r   data_srcvideo_idr3   	path_datar2   rB   r   r   r1   urlsr   r   r   rex
video_filer0   rN   secure_path_database_path_datarG   r_   m3u8_formatsfmobjsourcerg   	track_urlrh   r   s                                 r   _extract_cvp_infoTurnerBaseIE._extract_cvp_info2   s   ''D ( 
 I$$T*:z>
K8DH
 
	jjLN %,,Y7J#JOO$9$9$;<I	*C##$566" %%j11#,==#: ' 66$_5$[1I=);=	 XXk955!*sIMM)R4P!Q*..{;	 %	1	D KK	""y1I++$$T2.55$7  !!#$#  t99xu  :  6 7@)LLt;;x(}}UB7;;FC !5*   #99x%.e  :  = *yI/E)3@;PSBT2U./ *|,t88$Y70CDY%7%u  9  F G
 "+$
 zz),HH!$TZZ%8!9"%djj&:";*4::i+@A 
  	3// ((**#&y>%!xx(>	J#zz!}7 !.4+0*" !#
 ,/tzz!}+=%q!K 8N !(()@AF0'		%(89	 I$6$6v$>$>yy(FEIIg,>F$$$T2.55$$"'#' c&**X./7  1 B 	 ;
 ")).9; 	; Z2f< "$#J9(J)NO&z*h'G'h:V`bgKhi00<%j'9E [9(J)OP)*Z*QR
 	
r   c                 6   [        U[        5      (       d  0 nUR                  S5      nU R                  SU S3U5      S   S   nS n/ n/ n	S GH*  n
UR                  U
0 5      nUR                  S5      =(       d    UR                  S5      nU(       d  MH  UR                  S	5      S
:X  a  U R	                  SXXCU5      nU	R                  U R                  XSSUSS95        [        UR                  S5      5      nU(       a  M  U(       a  M  UR                  S/ 5       HU  n[        UR                  S5      5      n[        UR                  S5      5      nUb  Uc  M?  UR                  UX-   S.5        MW     GM-     U(       a  U	 H  nS/ SQ0US'   M     U	UUS.$ )Nr   zhttps://medium.ngtv.io/media/z/tvmediatv)unprotectedbulkaes	secureUrlr"   playlistProtectionspez%https://token.ngtv.io/token/token_sperV   rW   F)rX   liverB   totalRuntimecontentSegmentsstartr   )
start_timeend_timerY   )rZ   r[   z-icyr[   r\   )r   chaptersr   )	r   dictr+   _download_jsonr8   r   r   r	   r   )r   media_idtokenizer_queryr3   r2   r   streams_datar   r   r   supported_typestream_datam3u8_urlchapterr   chapter_durationr   s                    r   _extract_ngtv_infoTurnerBaseIE._extract_ngtv_info   s   '4((G++i(**+H:S9#% 8N&**>2>K"{3M{u7MH34=55;_V NN455E5we 6 U V %[__^%DEH8GG*/@"EG!.w{{7/C!DJ'4W[[5L'M$!)-=-E OO&0$.$A%   F 92 +8:Y*Z&' 
   
 	
r    r<   )
__name__
__module____qualname____firstlineno__r*   r   r8   r   r   __static_attributes__r   r   r   r   r      s,     I-2 SU^`hm g
R,
r   r   )r   	adobepassr   utilsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   <module>r      s-    	 "   t
; t
r   