
    V|h                         S SK r SSKJr  SSKJrJrJrJrJrJ	r	J
r
JrJr   " S S\5      r " S S	\5      r " S
 S\5      rg)    N   )InfoExtractor   )	ExtractorErrorextract_attributesint_or_nonestr_or_nonetraverse_objtry_callunescapeHTMLurl_basenameurl_or_nonec                        \ rS rSrS rS rSrg)ZaikoBaseIE   c                     U R                  X5      u  p4UR                  nSU;   a  U R                  5         U$ SU;   a
  [        SSS9eU$ )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         P/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/zaiko.py_download_real_webpage"ZaikoBaseIE._download_real_webpage   sV    55cDHH	y(%%'  " !S^bcc    c                     U R                  SU S3X!5      n0 n[        U5      R                  5        H7  u  pgUR                  S5      (       d  M  U R	                  Xs[
        SS9XVSS  '   M9     U$ )Nz(<z[^>]+>):F)transform_sourcefatalr   )_search_regexr   items
startswith_parse_jsonr   )r   namestringr   	page_elemattrskeyvalues           r   _parse_vue_element_attr#ZaikoBaseIE._parse_vue_element_attr   sx    &&"TF'':FI	,Y7==?JC~~c""!%!1!1l% "2 "Q!"g @ r!    N)__name__
__module____qualname____firstlineno__r   r0   __static_attributes__r2   r!   r   r   r      s    r!   r   c                   N    \ rS rSrSrSSSSSSS	S
SSSS/SS.SS0SS./rS rSrg)ZaikoIE%   zAhttps?://(?:[\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                     U R                  U5      nU R                  X5      nU R                  SX25      nU R                  US   S   USSS0S9nU R                  SXR5      n[	        US	[
        145      =(       d    0 n[	        US
[        145      nSSSSSSSSSSS.
R                  U5      =(       d	    SSU S3S4u  pn[	        US[        145      (       a  U R                  US   USS5      S   nO[	        US[        145      nU(       a  U R                  XSSS9O/ nU(       d  U R                  XS9  [	        US [        145      U R                  U R                  S!U 3US"SS#9=(       d    S$5      /nUUU	S%.[	        US&S'[        14S(S'[        14S(S)[        14S*S+S,[        14S&S-S.[         4S/.5      E[	        US0[        145      U Vs/ s H#  n[        U5      (       d  M  U[#        U5      S1.PM%     snS2.E$ s  snf )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)rY   zThis event has endedT)rY   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	cancelledr\   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)rd   r%   r   
poster_urlzhttps://zaiko.io/event/zDownloading event page)r%    )rA   formatsrL   eventr*   profilerA   streamstart	timestampgenres.)rC   rF   rE   rG   rK   rC   )r   rA   )rD   rI   )	_match_idr   r0   _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_metarW   rX   rL   msgr   
stream_urlrn   thumbnail_urlss                  r   _real_extractZaikoIE._real_extract;   s   >>#&--c<22='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 	#( *-?$,HI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oNS^ijm^n@3l3.?@No
 	
 ps   G;#G;r2   Nr3   r4   r5   r6   
_VALID_URL_TESTSr   r7   r2   r!   r   r9   r9   %   sS    UJA+M $!+7&&'.%
 #F+B# F(9
r!   r9   c                   6    \ rS rSrSrSSSSSS.S	S
./rS rSrg)ZaikoETicketIEw   z>https?://(?:www.)?zaiko\.io/account/eticket/(?P<id>[\w=-]{49})zRhttps://zaiko.io/account/eticket/TZjMwMzQ2Y2EzMXwyMDIzMDYwNzEyMTMyNXw1MDViOWU2Mw==r   z"f30346ca31-20230607121325-505b9e63r=   z5https://media.zkocdn.net/pf_1/1_3wdyjcjyupseatkwid34u)rA   rC   rH   z-Only available with the ticketholding account)r   playlist_countrO   rQ   c                 L  ^ U R                  U5      m[        U4S j5      =(       d    TmU R                  UT5      nU R                  SUT5      nU R                  " [        US5       Vs/ s H  o@R                  U[        5      PM     snT40 [        USSSS.45      D6$ s  snf )Nc                  r   > [         R                  " T SS  5      R                  5       R                  SS5      $ )Nr   |-)base64urlsafe_b64decodedecodereplace)	ticket_ids   r   <lambda>.ZaikoETicketIE._real_extract.<locals>.<lambda>   s-    F,,Yqr];BBDLLSRUVr!   eticket)streams.r   zticket-details
event_nameevent_img_url)rC   rH   )ru   r   r   r0   playlist_resultr
   
url_resultr9   )r   r   r   r   rq   r   s        @r   r   ZaikoETicketIE._real_extract   s    NN3'	VX e[d 	 --c9=..y'9M##<HRi<jk<j&__VW-<jk%g0@%,C 0  	ks   *B!r2   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   r9   r   r2   r!   r   <module>r      sA     !
 
 
- (O
k O
d[ r!   