Ë
    š„jÍ   ã                   ód   — 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e«      Z
 G d„ de«      Zy	)
é   )ÚInfoExtractoré   )ÚUserNotLiveÚfloat_or_noneÚint_or_noneÚparse_iso8601Úurl_or_none)Útraverse_objc                   óB   — e Zd ZdZdZdddeddddd	d
deedœddœgZd„ Zy)ÚCHZZKLiveIEz
chzzk:livez0https?://chzzk\.naver\.com/live/(?P<id>[\da-f]+)z=https://chzzk.naver.com/live/c68b8ef525fb3d2fa146344d84991753Ú c68b8ef525fb3d2fa146344d84991753Úmp4u   ì§„ì§œë�„í˜„Fúre:https?://.+/.+\.jpgiÈ¨eÚ20240117Úis_live)ÚidÚextÚtitleÚchannelÚ
channel_idÚchannel_is_verifiedÚ	thumbnailÚ	timestampÚupload_dateÚlive_statusÚ
view_countÚconcurrent_view_countz!The channel is not currently live)ÚurlÚ	info_dictÚskipc                 óR  — | j                  |«      }| j                  d|› d�|dd¬«      d   }|j                  d«      dk(  rt        |¬	«      ‚| j	                  |d
   |«      }g }t        |ddt        hf«      }|rLd|v rHt        |dddt        hf«      D ]0  }|j                  ||j                  d|«      t        |«      dœ«       Œ2 g i }	}t        |dd„ f«      D ]v  }
|
j                  d«      dk(  }| j                  |
d   |ddd|rdnd¬«      \  }}|D ]  }|rd|d<   d|d   v sŒd|d <   Œ |j                  |«       | j                  ||	¬!«       Œx |d||	|d"œt        |d#t        hfd$t        d%¬&«      hfd't        hfd(t        hfd)d*t        hfd)d+t        hfd)d,t        hfd-œ«      ¥S ).Nz0https://api.chzzk.naver.com/service/v3/channels/z/live-detailzDownloading channel infozUnable to download channel info©ÚnoteÚerrnoteÚcontentÚstatusÚCLOSE)Úvideo_idÚlivePlaybackJsonr   ÚsnapshotThumbnailTemplatez{type}Útypes.)r   r   ÚwidthÚmediac                 ó   — t        |d   «      S )NÚpath)r	   )Ú_Úvs     úM/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/chzzk.pyú<lambda>z+CHZZKLiveIE._real_extract.<locals>.<lambda>9   s   € ÌÐTUÐV\ÑT]ÓH^€ ó    ÚmediaIdÚLLHLSr/   r   FTzhls-llÚhls)ÚfatalÚliveÚm3u8_idéþÿÿÿÚsource_preferencez-afragalow.stream-audio.streamÚ	format_idÚquality)Útarget)r   r   ÚformatsÚ	subtitlesÚ
thumbnailsÚ	liveTitleÚopenDateú )Ú	delimiterÚconcurrentUserCountÚaccumulateCountr   ÚchannelNameÚ	channelIdÚverifiedMark)r   r   r   r   r   r   r   )Ú	_match_idÚ_download_jsonÚgetr   Ú_parse_jsonr
   r	   ÚstrÚappendÚreplacer   Ú#_extract_m3u8_formats_and_subtitlesÚextendÚ_merge_subtitlesr   Úbool)Úselfr   r   Úlive_detailÚlive_playbackrB   Úthumbnail_templater,   r@   rA   r-   Úis_low_latencyÚfmtsÚsubsÚfs                  r2   Ú_real_extractzCHZZKLiveIE._real_extract"   s8  € Ø—^‘^ CÓ(ˆ
Ø×)Ñ)Ø>¸z¸lÈ,ÐWÐYcØ+Ð5Vð *ó XàXañcˆð �?‰?˜8Ó$¨Ò/Ü zÔ2Ð2à×(Ñ(¨Ð5GÑ)HÈ*ÓUˆàˆ
Ü)Ø˜KÐ)DÄ{ÀmÐTóVÐá (Ð.@Ñ"@Ü% m°kÀ7ÈCÔRUÐQVÐ5WÓXò �Ø×!Ñ!ØØ-×5Ñ5°hÀÓFÜ(¨Ó/ñ#õ ðð   �ˆÜ! -°'Ñ;^Ð1_Ó`ò 	:ˆEØ"ŸY™Y yÓ1°WÑ<ˆNØ×AÑAØ�f‘˜z¨5¸ÀDÙ$2™¸ð Bó ?‰JˆD�$ð ò &�Ù!Ø-/�AÐ)Ñ*Ø3°q¸±~ÒEØ#%�A�i’Lð	&ð
 �N‰N˜4Ô Ø×!Ñ! $¨yÐ!Õ9ð	:ð ØØØ"Ø$ñ
ô ˜;Ø%¬ uÐ-Ø(¬=À3Ô+GÐ*HÐIØ*?Ä+ÀÐ)OØ0´;°-Ð@Ø% }´s°eÐ<Ø(¨+¼°uÐ=Ø(1°>ÄDÀ6Ð'Jñ)ó ð
ð 	
r4   N)	Ú__name__Ú
__module__Ú__qualname__ÚIE_NAMEÚ
_VALID_URLrP   ÚintÚ_TESTSr_   © r4   r2   r   r      sN   „ Ø€GØD€JàNà4ØØØ%Ø<Ø#(Ø2Ø#Ø%Ø$ØØ%(ñ
ð 4ñ!ð €Fó&3
r4   r   c                   óª   — e Zd ZdZdZddddddd	d
ddddedœddœddddddd
ddddedœdœddddddd dd!d"d#edœdœd$d%dd&d'd(d
ed)dd*d+d,d-œd.d/id0œgZd1„ Zy2)3ÚCHZZKVideoIEzchzzk:videoz,https?://chzzk\.naver\.com/video/(?P<id>\d+)z"https://chzzk.naver.com/video/1754Ú b0c0c1bb888d913b93d702b1512c7f06Ú1754r   u   ì¹˜ì§€ì§� í…ŒìŠ¤íŠ¸ ë°©ì†¡u	   ì¹¨ì°©ë§¨Ú bb382c2c0cc9fa7c86ab3b037fb5799cFr   iÙ<  g!°Z"Q`ÙAÚ20231219)r   r   r   r   r   r   r   Údurationr   r   r   zReplay video is expired)r   Úmd5r   r    z"https://chzzk.naver.com/video/1980Ú1980u3   â€»ì‹œì²­ì£¼ì�˜â€»í•œë²ˆë³´ë©´ ìžŠê¸° íž˜ë“  ì˜�ìƒ�u   ë�¼ë””ìœ radiyuÚ 68f895c59a1043bc5019b5e08c83a5c5é_   g?5î)Ò`ÙAÚ20231220)r   r   z"https://chzzk.naver.com/video/2458Ú2458u
   ì²« ë°©ì†¡u   ê°•ì§€Ú b5ed5db484d04faf4d150aedd362f34bTiQ  g-²1šaÙAÚ20231223z%https://chzzk.naver.com/video/6325166Ú6325166u   ì™€ì�´í”„ ìˆ™ì œë¹¼ì£¼ê¸°u   ì�´ ë‹¤Ú 0076a519f147ee9fd0959bf02f9571cain  g=
7Ô»õÙAÚ20250316Úwas_live)r   r   r   r   r   r   r   rn   r   r   r   r   Úskip_downloadÚm3u8)r   r   Úparamsc                 ó¼  — | j                  |«      }| j                  d|› �|dd¬«      d   }|j                  d«      rdnd}|j                  d	«      }|d
k(  r&| j                  d|d   › �||d   ddddœ¬«      \  }}nƒ|dk(  }| j	                  |d   ||¬«      }	| j                  t        |	d«      |dd|¬«      \  }}|r|dk7  r| j                  d|› d�«       n'|s%| j                  d|› d�d|¬«       g i }}|dk(  rdnd }||||dœt        |d t        hfd!t        hfd"t        d#¬$«      hfd%t        hfd&t        hfd'd(t        hfd'd)t        hfd'd*t        hfd+œ«      ¥S ),Nz.https://api.chzzk.naver.com/service/v3/videos/zDownloading video infozUnable to download video infor"   r%   ÚliveOpenDaterz   Únot_liveÚ	vodStatusÚABR_HLSz6https://apis.naver.com/neonplayer/vodplay/v1/playback/ÚvideoIdÚinKeyÚrealÚen_US)ÚkeyÚenvÚlcÚcpl)ÚqueryÚUPLOADÚliveRewindPlaybackJson)r8   )r-   é    r/   r   r7   )r:   r8   zVideo found with status: "ú"z Unknown video status detected: "T)Úexpectedr(   Ú	post_live)r   r@   rA   r   Ú
videoTitleÚthumbnailImageUrlÚpublishDateAtiè  )ÚscaleÚ	readCountrn   r   rI   rJ   rK   )r   r   r   r   rn   r   r   r   )rL   rM   rN   Ú"_extract_mpd_formats_and_subtitlesrO   rS   r
   Úwrite_debugÚraise_no_formatsrP   r	   r   r   rV   )
rW   r   r(   Ú
video_metar   Úvideo_statusr@   rA   r8   Úplaybacks
             r2   r_   zCHZZKVideoIE._real_extract    s÷  € Ø—>‘> #Ó&ˆØ×(Ñ(Ø<¸X¸JÐGÈØ)Ð3Rð )ó TàT]ñ_ˆ
ð %/§N¡N°>Ô$B‘jÈ
ˆØ!—~‘~ kÓ2ˆØ˜9Ò$Ø!%×!HÑ!HØHÈÐT]ÑI^ÐH_Ð`ØØ% gÑ.Ø!Ø!Ø"ñ	!ð "Ió "ÑˆG‘Yð ! HÑ,ˆEØ×'Ñ'¨
Ð3KÑ(LÈhÐ^cÐ'ÓdˆHØ!%×!IÑ!IÜ˜XÐ';Ó<¸hÈÐW\Ðdið "Jó "kÑˆG�Yá˜<¨8Ò3Ø× Ñ Ð#=¸l¸^È1Ð!MÕNÙØ×%Ñ%Ø6°|°nÀAÐFÐQUÐ`hð &ô jà%'¨˜�Ø-8¸JÒ-F™kÈD�ð ØØ"Ø&ñ	
ô
 ˜:Ø&¬¨Ð.Ø1´K°=ÐAØ-´ÀDÔ0IÐ/JÐKØ*¬[¨MÐ:Ø'¬+¨Ð7Ø% }´s°eÐ<Ø(¨+¼°uÐ=Ø(1°>ÄDÀ6Ð'Jñ	(ó 	ð
ð 	
r4   N)r`   ra   rb   rc   rd   re   rf   r_   rg   r4   r2   ri   ri   X   sî   „ Ø€GØ@€Jà3Ø1àØØ1Ø"Ø<Ø#(Ø2ØØ'Ø%Øñ
ð *ñ!ð& 4àØØJØ(Ø<Ø#(Ø2ØØ'Ø%Øñ
ñð$ 4àØØ!ØØ<Ø#'Ø2ØØ'Ø%Øñ
ñð$ 7àØØ0Ø Ø<Ø#(ØØØ2Ø&Ø%Ø%ñ
ð # FÐ+ñ#ðcC€FóJ-
r4   ri   N)Úcommonr   Úutilsr   r   r   r   r	   Úutils.traversalr
   r   ri   rg   r4   r2   ú<module>r       s4   ðÝ !÷õ õ +ôI
�-ô I
ôXu
�=õ u
r4   