
    VGh+                     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     `/var/www/it7/html/youtubeDownloader/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                  |      }|sd|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 {{?+'+'>'>ENJ0DgkFZ\n(pm$%%z & 8D"45I$Y>>tW-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.       nt7        |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_argsz	-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"7eii&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	thumbnailrs   duration	timestampupload_dateseriesseason_numberepisode_numberis_live)#r,   attribr   recompilefindallr   rl   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   rZ   m3u8_formatsfmobjsourcerb   	track_urlrc   r   s                                 r   _extract_cvp_infozTurnerBaseIE._extract_cvp_info2   s   ''hD ( 
 I$$T*:z>
K8DH
 
	jjLN %,,Y7 e	"J#JOO$9$9$;<I	*C##$56" %%j1#,==#: ' 66$_5$[1I=);=	 XXk95!*sIMM)R4P!Q*..{;	 %	1	D KK	""y1I++$$T2.55$7  !!#$#  t99xu  :  6 7@)Lt;;x(}}UB7;;FC !5*   #99x%.e  :  = *yI/E) V3@;PSBT2U./V|,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e	"N !(()@A 	F0 '		%(89	 I$6$6v$>yy(FEIIg,>F$$$T2.55$$"'#' c&**X./7 	 	 ;
 ")).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                    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  |	||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_time)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_durations                   r   _extract_ngtv_infozTurnerBaseIE._extract_ngtv_info   s   '4(G++i(**+H:S9#% 8 	N&**>2>K"{3M{u7MH34=55;h1C_V NN455(E5we 6 U V %[__^%DEHG*/@"E G!.w{{7/C!DJ'4W[[5L'M$!)-=-E OO&0$.1A$A% 	4   
 	
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-    	 "   o
; o
r   