a
    h                     @   sl   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
 ddlmZ G dd	 d	eZG d
d deZdS )    N   )InfoExtractor   )HEADRequest)ExtractorErrorint_or_noneupdate_url_queryurl_or_noneurljoin)traverse_objc                   @   s   e Zd ZdZdZdZdddddddd	d
ddddddddddiddddddddddddd dd
d!d"dd	d#ddidd$d%ddd	d&d'd(d)d*d+d,d-d.dd/d0d1d2ddid3gd4d5d6d7d8gZd9Zd*d
d
d
d
d:d:d;Zd<d= Z	d>S )?	TenPlayIEZ10playzMhttps?://(?:www\.)?10(?:play)?\.com\.au/(?:[^/?#]+/)+(?P<id>tpv\d{6}[a-z]{5})zjhttps://10.com.au/australian-survivor/web-extras/season-10-brains-v-brawn-ii/myless-journey/tpv250414jdmtfZ7440980000013868mp4zMyles's JourneyzKRelive Myles's epic Brains V Brawn II journey to reach the game's final two
Channel 102199827728001      zre:https://.+/.+\.jpgzAustralian Survivorz	Season 10
   igZ20250414)idexttitle	alt_titledescriptionuploaderuploader_id	age_limitduration	thumbnailseriesseasonseason_number	timestampupload_dateZskip_downloadZm3u8)url	info_dictparamszKhttps://10.com.au/neighbours/episodes/season-42/episode-9107/tpv240902nzqypZ9000000000091177zNeighbours - S42 Ep. 9107z
Thu 05 Sepz$md5:37a1f4271be34b9ee2b533426a5fbaefil  zEpisode 9107i#  z	Season 42*   Z
Neighboursi$PfZ20240905)r   r   r   r   r   r   episodeepisode_numberr   r   r   r   r   r    r!   r   r   zKhttps://10.com.au/tiny-chef-show/episodes/season-1/episode-2/tpv240228pofvtZ9000000000084116i  zThe Tiny Chef Show - S1 Ep. 2zS1 Ep. 2 - Popcorn/bananaz$md5:d4758b52b5375dfaa67a78261dcb5763r   zThe Tiny Chef Showr   r   i/hZ20250522zSeason 1z	Episode 2)r   r   r   r   r   r   r   r   r   r   r   r'   r    r   r!   r   r&   z3Failed to download m3u8 information: HTTP Error 502zvideo unavailable)r"   r#   r$   Zexpected_warningsskipzohttps://10play.com.au/how-to-stay-married/web-extras/season-1/terrys-talks-ep-1-embracing-change/tpv190915ylupcTr"   Zonly_matchingF   )GZPGMZMAzMA15+RXc                 C   sF  |  |}| d| |}| d|d  |d}| tt|d d d dd	i|d
j}d|v rr| jdgd d|v rtd| j|	dd|ddd}|s| ||d}||t
|drdd|d igind dddt|dthfdthfdthfdthfdthfd| jjhfd thfd!thfd"thfd#thfd$t
hfd%S )&Nz https://10.com.au/api/v1/videos/zMhttps://vod.ten.com.au/api/videos/bcquery?command=find_videos_by_id&video_id=ZaltIdzDownloading video JSONitemsr   ZdashManifestUrlmanifestZm3uzChecking stream URLz10play-not-in-ozZAU)Z	countriesZ10play_unsupportedzUnable to extract streamz,150,75,55,0000z,500,300,150,75,55,0000r   F)fatalZ
captionUrlenr"   r   r   )r   formatsZ	subtitlesr   r   r   Zsubtitler   r   ZclassificationZtvShowr   r&   Z	publishedZimageUrl)r   r   r   r   r   r   r   r   r'   r    r   )Z	_match_id_download_jsonZ_request_webpager   r   r"   Zraise_geo_restrictedr   Z_extract_m3u8_formatsreplacer	   getr   strr   	_AUS_AGES)selfr"   Z
content_iddataZ
video_dataZm3u8_urlr3    r;   M/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/tenplay.py_real_extracth   sX    

"zTenPlayIE._real_extractN)
__name__
__module____qualname__IE_NAME
_VALID_URLZ_NETRC_MACHINE_TESTSZ_GEO_BYPASSr8   r=   r;   r;   r;   r<   r      s   I
r   c                   @   sR   e Zd ZdZdZddddddd	d
dddddddgZdddZdd ZdS )TenPlaySeasonIEz10play:seasonzbhttps?://(?:www\.)?10(?:play)?\.com\.au/(?P<show>[^/?#]+)/episodes/(?P<season>[^/?#]+)/?(?:$|[?#])z/https://10.com.au/masterchef/episodes/season-15z	Season 15zMTQ2NjMxOQ==)r   r   2   )r"   r#   Zplaylist_mincountzNhttps://10.com.au/the-bold-and-the-beautiful-fast-tracked/episodes/season-2024zSeason 2024ZMjc0OTIw   zRhttps://10play.com.au/the-bold-and-the-beautiful-fast-tracked/episodes/season-2024Tr)   Nc                 c   sp   g }t dD ]\}| j||d|id| d}|d }|dd |D  |D ]}|d V  qN|d	 s qlqd S )
Nr   z	skipIds[]zFetching episodes page )queryZnoter/   c                 s   s   | ]}|d  V  qdS )r   Nr;   ).0epr;   r;   r<   	<genexpr>       z+TenPlaySeasonIE._entries.<locals>.<genexpr>ZcardLinkZhasMore)	itertoolscountr4   extend)r9   Zload_more_urlZ
display_idZskip_idspageepisodes_carouselZepisodes_chunkrI   r;   r;   r<   _entries   s    
zTenPlaySeasonIE._entriesc              	   C   s   |  |dd\}}| d| d| | d| }t|dddd	d
 dthfffddp^i }|d }| j| t||d ||t|dddthft|dS )Nshowr   zhttps://10.com.au/api/shows/z
/episodes//contentr   
componentsc                 S   s   |d   dkS )Nr   Zepisodes)lower)_vr;   r;   r<   <lambda>   rK   z/TenPlaySeasonIE._real_extract.<locals>.<lambda>.F)get_allZtpIdZloadMoreUrlr   )getter)	Z_match_valid_urlgroupr4   r   dictZplaylist_from_matchesrQ   r
   r7   )r9   r"   rR   r   Zseason_inforP   Zplaylist_idr;   r;   r<   r=      s(    zTenPlaySeasonIE._real_extract)N)r>   r?   r@   rA   rB   rC   rQ   r=   r;   r;   r;   r<   rD      s(   
rD   )rL   commonr   Z
networkingr   utilsr   r   r   r	   r
   Zutils.traversalr   r   rD   r;   r;   r;   r<   <module>   s    	