
    VGh                         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  G d de      Z G d d	e      Z G d
 de      Zy)    N   )InfoExtractor   )	ExtractorErrorextract_attributesint_or_nonestr_or_nonetraverse_objtry_callunescapeHTMLurl_basenameurl_or_nonec                       e Zd Zd Zd Zy)ZaikoBaseIEc                     | j                  ||      \  }}|j                  }d|v r| j                          |S d|v rt        dd      |S )Nzzaiko.io/loginz/_buy/0Your account does not have tickets to this eventTexpected)_download_webpage_handleurlraise_login_requiredr   )selfr   video_idwebpageurlh	final_urls         _/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/zaiko.py_download_real_webpagez"ZaikoBaseIE._download_real_webpage   sZ    55c8DHH	y(%%'  " !S^bcc    c                     | j                  d| d||      }i }t        |      j                         D ]6  \  }}|j                  d      s| j	                  ||t
        d      ||dd  <   8 |S )Nz(<z[^>]+>):F)transform_sourcefatalr   )_search_regexr   items
startswith_parse_jsonr   )r   namestringr   	page_elemattrskeyvalues           r   _parse_vue_element_attrz#ZaikoBaseIE._parse_vue_element_attr   s    &&"TF'':FDI	,Y7==? 	QJC~~c"!%!1!18l% "2 "Qc!"g	Q r   N)__name__
__module____qualname__r   r.    r   r   r   r      s    r   r   c                   F    e Zd ZdZdddddddd	d
dddgddddiddgZd Zy)ZaikoIEzAhttps?://(?:[\w-]+\.)?zaiko\.io/event/(?P<id>\d+)/stream(?:/\d+)+z0https://zaiko.io/event/324868/stream/20571/20571324868mp4ZAIKO STREAMING TESTz2[VOD] ZAIKO STREAMING TEST_20210603(Do Not Delete)454z
ZAIKO ZEROig^zre:^https://[\w.-]+/\w+/\w+z
maxcount:220200310z
Tech Housewas_live)idexttitle	alt_titleuploader_iduploaderrelease_timestamp	thumbnail
thumbnailsrelease_date
categorieslive_statusskip_downloadm3u8r   )r   	info_dictparamsskipc                    | j                  |      }| j                  ||      }| j                  d||      }| j                  |d   d   |dddi      }| j                  d||      }t	        |d	t
        hf      xs i }t	        |d
t        hf      }ddddddddddd
j                  |      xs	 dd| ddf\  }	}
}t	        |dt        hf      r| j                  |d   |dd      d   }nt	        |dt        hf      }|r| j                  ||dd      ng }|s| j                  |
|       t	        |d t        hf      | j                  | j                  d!| |d"d#      xs d$      g}|||	d%t	        |d&d't        hfd(d't        hfd(d)t        hfd*d+d,t        hfd&d-d.t         fd/      t	        |d0t        hf      |D cg c]  }t        |      s|t#        |      d1 c}d2S c c}w )3Nzstream-pagezstream-accessvideo_sourcezDownloading player pagerefererzhttps://zaiko.io/)headersplayerinitial_event_infostatus)r:   zNo VOD stream URL was foundF)	post_livez"Event VOD is still being processedT)rS   zThis event has endedT)rS   zStream has been disconnectedT)is_livez!No livestream URL found was foundF)is_upcomingzLive event has not yet startedT)not_livezEvent has been cancelledT)
vod	archivingdeletingdeletederrordisconnectedlive_to_disconnectedlivewaiting	cancelledrV   zUnknown event status ""Fis_jwt_protectedjwt_token_urlz$Downloading JWT-protected stream URLz+Failed to download JWT-protected stream URLplayback_urlendpointT)r^   r#   r   
poster_urlzhttps://zaiko.io/event/zDownloading event page)r#    )r;   formatsrF   eventr(   profiler;   streamstart	timestampgenres.)r=   r@   r?   rA   rE   r=   )r   r;   )r>   rC   )	_match_idr   r.   _download_webpager
   dictstrgetbool_download_jsonr   _extract_m3u8_formatsraise_no_formats_og_search_thumbnailr	   r   filterr   )r   r   r   r   stream_metaplayer_pageplayer_metarQ   rR   rF   msgr   
stream_urlrh   thumbnail_urlss                  r   _real_extractzZaikoIE._real_extract;   s   >>#&--c8<22='8T,,(8(%	;N/O - Q 228[(S)+8Ltf7UV\Z\08cU2CDERCB@O$WKNG&
 #f+&Q %(>vha&H%P 	#S( *-?$,HI,,"?3X?e=??MOJ &&8:}:UVJ >H ,,t5 - :MO 	!!#!9 +l[M-JK%%d&<&<)(4h@X`e '= 'g 'mjln
 &
 ;!6C51&6 )4+?&.{m%T&#v>) 	
 &&87SE:JKLZoS^ijm^n3l3.?@o
 	
 ps   ?G&G&Nr/   r0   r1   
_VALID_URL_TESTSr   r2   r   r   r4   r4   %   sS    UJA+M $!+7&&'.%
 #F+B# F(9
r   r4   c                   .    e Zd ZdZdddddddd	gZd
 Zy)ZaikoETicketIEz>https?://(?:www.)?zaiko\.io/account/eticket/(?P<id>[\w=-]{49})zRhttps://zaiko.io/account/eticket/TZjMwMzQ2Y2EzMXwyMDIzMDYwNzEyMTMyNXw1MDViOWU2Mw==r   z"f30346ca31-20230607121325-505b9e63r7   z5https://media.zkocdn.net/pf_1/1_3wdyjcjyupseatkwid34u)r;   r=   rB   z-Only available with the ticketholding account)r   playlist_countrI   rK   c                 <   | j                  |      t        fd      xs | j                  |      }| j                  d|      } | j                  t        |d      D cg c]  }| j                  |t               c}fi t        |ddddf      S c c}w )Nc                  p    t        j                   dd        j                         j                  dd      S )Nr   |-)base64urlsafe_b64decodedecodereplace)	ticket_ids   r   <lambda>z.ZaikoETicketIE._real_extract.<locals>.<lambda>   s/    F,,Yqr];BBDLLSRUV r   eticket)streams.r   zticket-details
event_nameevent_img_url)r=   rB   )ro   r   r   r.   playlist_resultr
   
url_resultr4   )r   r   r   r   rk   r   s        @r   r   zZaikoETicketIE._real_extract   s    NN3'	VX e[d 	 --c9=..y'9M#t##<HRi<jk&T__VW-k%g0@%,C 0  	ks   $BNr   r2   r   r   r   r   w   s2    RJc6+P

 @	 	Fr   r   )r   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r4   r   r2   r   r   <module>r      sA     !
 
 
- (O
k O
d[ r   