
    yf0+                     n    d dl Z ddlm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   )
compat_str)fix_xml_ampersands
xpath_textint_or_nonedetermine_extfloat_or_noneparse_duration
xpath_attrupdate_url_queryExtractorErrorstrip_or_noneurl_or_nonec                   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     9/usr/lib/python3/dist-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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 {{?+'+'>'>wu~z[bcn[oqx  zE  rF  (G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 ]f  }t        |j                  j                               }|s*t        |      }|j                  d
      rG|j                  d      r2|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       G|dk(  r%|
j!                  | j#                  ||d             qt        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*             R|||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                  |       i |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	   
isinstancer   isdigitendswithr   r   r   r   )r   data_srcvideo_id	path_datar1   r>   r   r{   r0   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 
  	:6 ((*#&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                    |j                  d      }| j                  d|z  |      d   d   }d }g }g }dD ]  }	|j                  |	i       }
|
j                  d      xs |
j                  d      }|s=|
j                  d      d	k(  r| j                  d
|||xs i |      }|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!http://medium.ngtv.io/media/%s/tvmediatv)unprotectedbulkaes	secureUrlr!   playlistProtectionspez$http://token.ngtv.io/token/token_sperR   rS   F)rT   liver>   totalRuntimecontentSegmentsstartr   )
start_timeend_time)r|   chaptersr   )r*   _download_jsonr6   r   r   r   r   )r   media_idtokenizer_queryr1   r   streams_datar   r   r|   supported_typestream_datam3u8_urlchapterr   chapter_durations                  r   _extract_ngtv_infozTurnerBaseIE._extract_ngtv_info   s   ++i(**/(:#% 8 	N&**>2>K"{3M{u7MH34=55:h2H 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-0 ?A"TY g
R%
r   r   )r   	adobepassr   compatr   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   <module>r      s0    	 "    l
; l
r   