Ë
    š„jÃ,  ã                   ób   — d dl 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mZmZ  G d„ de«      Zy)é    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                   ó4   — e Zd Zi Zd„ Zdd„Zi i dfd„Zdd„Zy)ÚTurnerBaseIEc                 ó.   — t        t        |dd«      «      S )NÚdateCreatedÚuts)r
   r   )ÚselfÚ
video_datas     úN/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/turner.pyÚ_extract_timestampzTurnerBaseIE._extract_timestamp   s   € Üœ: j°-ÀÓGÓHÐHó    Nc                 ó²  — | j                  d|d«      dz   }| j                  j                  |«      }|s�d|i}	|r|	j                  |«       n||	d<   |j                  d«      r!| j	                  |d   ||d   |d   |«      |	d	<   | j                  |||	¬
«      }
t        |
d«      }|rt        |d¬«      ‚t        |
d«      }|s|S || j                  |<   |dz   |z   S )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_tokenz"TurnerBaseIE._add_akamai_spe_token   s  € Ø×(Ñ(Ð)?ÀÈMÓZÐ]`Ñ`ˆØ×,Ñ,×0Ñ0°Ó=ˆÙà˜ðˆEñ &Ø—‘Ð3Õ4à#-��iÑ Ø�{‰{˜?Ô+Ø'+×'>Ñ'>Ø˜E‘N J°¸Ñ0DÀgÈkÑFZÐ\nó(p��mÑ$à×%Ñ%Ø˜z°ð &ó 8ˆDä" 4¨Ó5ˆIÙÜ$ Y¸Ô>Ð>Ü˜t WÓ-ˆEÙØ Ð Ø8=ˆD×(Ñ(¨Ñ5Ø˜9Ñ$ uÑ,Ð,r   Fc                 óð
  — | j                  ||d„ |¬«      }|si S |j                  d   }t        |dd¬«      }t        |d«      xs |}	g }
g }g }i }t        j                  d«      }|j                  d	«      D �]g  }t        |j                  j                  «       «      }|sŒ*t        |«      }|j                  d
«      rŒG|j                  d«      r3|j                  d«      }|sŒl| j                  |d   |d   |z   |	||«      }nQt        j                  d|«      s;|j                  ||j                  di «      «      }|j                  d«      }|sŒ×||z   }||
v rŒá|
j                  |«       |j                  d«      }|dv r&|j                  dg «      j                  ||dœ«       �Œ-|dk(  r|j                  ||dœ«       �ŒH|dk(  r%|j!                  | j#                  ||d¬«      «       �Œrt        j                  d|«      rF|j!                  | j%                  |||j                  di «      j                  d«      ddœ«      «       �ŒÎ|dk(  rE| j'                  ||d|xs d d¬!«      }d|v rd"|v r|D ]  }d#d$d%gi|d&<   Œ |j!                  |«       �Œ|dk(  r6|j!                  | j)                  t+        |d'd(i«      ||xs d)d¬*«      «       �ŒS|||d+œ}|j-                  |«      }|r^|j/                  t1        |j3                  d,«      «      t1        |j3                  d-«      «      t5        |j3                  d«      «      d.œ«       n�t7        |t8        «      r}|j;                  «       rt1        |«      |d/<   n^t        j                  d0|«      }|rF|j3                  d1«      d2k(  r|j/                  d3d4d5œ«       nt1        |j3                  d1«      «      |d/<   |j                  |«       �Œj |j                  d6«      D ]´  }|j                  d7«      D ]ž  }t        |j                  d8«      «      }|r|j=                  d9«      rŒ1|j                  d:«      xs |j                  d;«      xs d}|j                  |g «      j                  |d<d=d>d?œj                  |j                  d@«      «      dAœ«       Œ  Œ¶ |j!                  dB„ |j                  dC«      D «       «       t        |dD«      dEk(  }|||||t        |dF«      t?        t        |dG«      «      tA        t        |dH«      xs t        |dI«      «      | jC                  |«      tE        |dJdK«      t        |dL«      t5        t        |dM«      «      t5        t        |dN«      «      |dOœS )PNc                 ó4   — t        | «      j                  «       S ©N)r   Ústrip)Úss    r   ú<lambda>z0TurnerBaseIE._extract_cvp_info.<locals>.<lambda>5   s   € Ô'9¸!Ó'<×'BÑ'BÓ'D€ r   )Útransform_sourceÚfatalÚidÚheadlineT)r>   Ú	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)r?   r    ÚsmilFz#https?://[^/]+\.akamaihd\.net/[iz]/Úf4mÚhostzpmd.cdn.turner.com)ÚhdsÚhttpÚm3u8Úmp4Úhls)Úm3u8_idr>   r&   Úffmpeg_argsú	-seekableÚ0Údownloader_optionsÚhdcorez3.7.0rO   )Úf4m_idr>   )Ú	format_idr    rJ   ÚwidthÚheight)r\   r]   Útbrr^   zios_(audio|[0-9]+)$r   ÚaudioÚnoneÚm4a)ÚvcodecrJ   zclosedCaptions/sourceÚtrackr    z/bigÚlangÚlabelrF   rH   Útt)rF   ÚwebvttÚsmptettÚformat)r    rJ   c           	   3   óâ   K  — | ]g  }|j                  d «      xs |j                  d«      |j                  t        |j                  d«      «      t        |j                  d«      «      dœ–— Œi y­w)ÚcutÚnamer\   r]   )r?   r    r\   r]   N)r)   Útextr
   )Ú.0Úimages     r   ú	<genexpr>z1TurnerBaseIE._extract_cvp_info.<locals>.<genexpr>Á   s_   è ø€ ò ;ð
 ð	 —)‘)˜EÓ"Ò7 e§i¡i°Ó&7Ø—:‘:Ü  §¡¨7Ó!3Ó4Ü! %§)¡)¨HÓ"5Ó6õ	
ñ ;ùs   ‚A-A/zimages/imageÚisLiveÚtrueÚposterÚdescriptionÚlengthÚtrtÚmetasÚversionÚ	showTitleÚseasonNumberÚepisodeNumber)r?   ÚtitleÚformatsÚ	subtitlesÚ
thumbnailsÚ	thumbnailrt   ÚdurationÚ	timestampÚupload_dateÚseriesÚseason_numberÚepisode_numberÚis_live)#r,   Úattribr   ÚreÚcompileÚfindallr   rm   r:   r   Ú
startswithr)   r6   Ú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_idr1   Ú	path_datar0   r>   r   r|   r/   Úurlsr}   r   r~   ÚrexÚ
video_filer.   rJ   Úsecure_path_dataÚbase_path_datarC   r[   Úm3u8_formatsÚfÚmobjÚsourcerc   Ú	track_urlrd   r‡   s                                 r   Ú_extract_cvp_infozTurnerBaseIE._extract_cvp_info2   s¤  € Ø×'Ñ'Ø�hÙDØð (ó ˆ
ñ ØˆIØ×$Ñ$ TÑ*ˆÜ˜: z¸Ô>ˆÜ 
¨KÓ8ÒD¸Hˆ
ð ˆØˆØˆ
Øˆ	Ü�j‰jØLóNˆð %×,Ñ,¨YÓ7ó e	"ˆJÜ# J§O¡O×$9Ñ$9Ó$;Ó<ˆIÙØÜ 	Ó*ˆCØ×#Ñ#Ð$5Ô6Øð" ×%Ñ% jÔ1Ø#,§=¡=°Ó#:Ð Ù'ØØ ×6Ñ6Ø$ _Ñ5Ø$ [Ñ1°IÑ=Ø Ð);ó=‘	ô —X‘X˜k¨9Ô5Ø!*§¡¨s°I·M±MÀ)ÈRÓ4PÓ!Q�Ø*×.Ñ.¨{Ó;�	Ù ØØ%¨	Ñ1�	Ø˜DÑ ØØ�K‰K˜	Ô"Ø"Ÿ™ yÓ1ˆIØÐ+Ñ+Ø×$Ñ$ T¨2Ó.×5Ñ5ØØ$ñ7ö ð ˜’Ø×!Ñ!Ø#Ø$ñ#ö ð ˜’Ø—‘˜t×9Ñ9Ø˜x¨uð  :ó  6ö 7ä—‘Ð@À)ÔLØ—‘˜t×;Ñ;Ø˜xØ(Ÿ}™}¨U°BÓ7×;Ñ;¸FÓCð !5ñ*ó ö ð ˜’Ø#×9Ñ9Ø˜x¨Ø%Ò.¨°eð  :ó  =�ð  Ñ*¨y¸IÑ/EØ)ò V˜Ø3@À;ÐPSÐBTÐ2U˜Ð.Ò/ðVà—‘˜|Ö,Ø˜’Ø—‘˜t×8Ñ8Ü$ Y°¸7Ð0CÓDØ YÒ%7°%¸uð  9ó  Fö Gð
 "+Ø$Øñ�ð
 —z‘z )Ó,�ÙØ—H‘HÜ!$ T§Z¡Z°Ó%8Ó!9Ü"% d§j¡j°Ó&:Ó";Ü*¨4¯:©:°iÓ+@ÓAñõ ô
   	¬3Ô/Ø ×(Ñ(Ô*Ü#& y£>˜˜%šä!Ÿx™xÐ(>À	ÓJ˜ÙØ#Ÿz™z¨!›}°Ò7Ø !§¡Ø.4Ø+0ñ*"õ !#ô
 ,/¨t¯z©z¸!«}Ó+=  %¡Ø—‘˜qÖ!ðKe	"ðN !×(Ñ(Ð)@ÓAò 	ˆFØŸ™¨Ó0ò �Ü'¨¯	©	°%Ó(8Ó9�	Ù  I×$6Ñ$6°vÔ$>ØØ—y‘y Ó(ÒF¨E¯I©I°gÓ,>ÒFÀ$�Ø×$Ñ$ T¨2Ó.×5Ñ5Ø$à$Ø"'Ø#'ñ÷ ‘c˜&Ÿ*™* XÓ.Ó/ñ7õ ñð	ð 	×Ññ ;ð
 "×)Ñ)¨.Ó9ô;ô 	;ô ˜Z¨Ó2°fÑ<ˆð ØØØ"Ø$Ü# J°Ó9Ü(¬°JÀÓ)NÓOÜ&¤z°*¸hÓ'GÒ'hÌ:ÐV`ÐbgÓKhÓiØ×0Ñ0°Ó<Ü% j°'¸9ÓEÜ  ¨[Ó9Ü(¬°JÀÓ)OÓPÜ)¬*°ZÀÓ*QÓRØñ
ð 	
r   c                 óî  — t        |t        «      si }|j                  d«      }| j                  d|› d�|«      d   d   }d }g }g }	dD �]  }
|j                  |
i «      }|j                  d«      xs |j                  d«      }|sŒ=|j                  d	«      d
k(  r| j	                  d|||||«      }|	j                  | j                  ||dd|d¬«      «       t        |j                  d«      «      }|rŒª|rŒ­|j                  dg «      D ]R  }t        |j                  d«      «      }t        |j                  d«      «      }|�|€Œ<|j                  |||z   dœ«       ŒT �Œ |r|	D ]  }dg d¢i|d<   Œ |	||dœS )Nr‡   zhttps://medium.ngtv.io/media/z/tvÚmediaÚtv)ÚunprotectedÚbulkaesÚ	secureUrlr    ÚplaylistProtectionÚspez%https://token.ngtv.io/token/token_sperR   rS   F)rT   Úliver>   ÚtotalRuntimeÚcontentSegmentsÚstartr�   )Ú
start_timeÚend_timerU   )rV   rW   z-icyrW   rX   )r}   Úchaptersr�   )	r˜   Údictr)   Ú_download_jsonr6   r�   r“   r	   rŽ   )r   Úmedia_idÚtokenizer_queryr1   r0   r‡   Ústreams_datar�   r¸   r}   Úsupported_typeÚstream_dataÚm3u8_urlÚchapterr¶   Úchapter_durationr¥   s                    r   Ú_extract_ngtv_infozTurnerBaseIE._extract_ngtv_infoÛ   sÇ  € Ü˜'¤4Ô(ØˆGØ—+‘+˜iÓ(ˆØ×*Ñ*Ø+¨H¨:°SÐ9Øóàñà#ñ%ˆð ˆØˆØˆØ8ó 	ˆNØ&×*Ñ*¨>¸2Ó>ˆKØ"—‘ {Ó3ÒM°{·±ÀuÓ7MˆHÙØØ�‰Ð3Ó4¸Ò=Ø×5Ñ5Ø;Ø˜h¨Ð1CÀ_óV�ð �N‰N˜4×5Ñ5Ø˜( E°5¸wÈeð 6ó Uô Vô % [§_¡_°^Ó%DÓEˆHâ¢GØ*Ÿ™Ð/@À"ÓEò �GÜ!.¨w¯{©{¸7Ó/CÓ!D�JÜ'4°W·[±[ÀÓ5LÓ'MÐ$Ø!Ð)Ð-=Ð-EØ Ø—O‘OØ&0Ø$.Ð1AÑ$Añ%õ òð	ñ2 Øò [�à+8Ò:YÐ*Z�Ð&Ò'ð[ð
 Ø Ø ñ
ð 	
r   r9   )Ú__name__Ú
__module__Ú__qualname__r(   r   r6   r©   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   