Ë
    š„j  ã                   ó‚   — d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZ dd	lmZ  G d
„ de«      Zy)é    Né   )ÚFileDownloader)ÚFFmpegFDé   )ÚRequest)ÚWebSocketResponse)ÚDownloadErrorÚstr_or_noneÚtruncate_string)Útraverse_objc                   ó   — e Zd ZdZd„ Zy)ÚNiconicoLiveFDz/ Downloads niconico live without being stopped c                 óD  ‡ ‡‡	‡
‡‡— |d   Š
|d   }|d   |d   |d   cŠ	ŠŠt        ‰ j                  ‰ j                  xs i «      }|j                  «       }d|d<   ˆ	ˆ ˆˆfd„Šˆˆ ˆ
fd	„}t	        j
                  |d
¬«      }|j                  «        |j                  ||«      S )NÚidÚdownloader_optionsÚmax_qualityÚwsÚws_urlÚm3u8Úprotocolc                 óà  •— | st        ‰t        «      s”‰j                  j                  t	        ‰ddi¬«      «      }‰j                  j
                  j                  dd«      r‰j                  d«       |j                  t        j                  dddd	œd
ddd‰dœdœddœ«      «       n‰}|5  	 |j                  «       }|sŒt        j                  |«      }|rt        |t        «      sŒ<|j                  d«      dk(  r#|j                  d«       |j                  d«       nÂ|j                  d«      dk(  r‰j                  |«       	 d d d «       y|j                  d«      dk(  r;‰j                  |«       t        |ddt        hf|¬«      }t!        |«      cd d d «       S ‰j                  j
                  j                  dd«      r‰j                  dt#        |d«      › �«       �Œ6# 1 sw Y   y xY w)NÚOriginzhttps://live.nicovideo.jp)ÚheadersÚverboseFzSending startWatching requestTÚ	webSocket)Úcommentabler   Úsingle_cookieÚhighÚhls)ÚaccessRightMethodÚ	chasePlayÚlatencyr   Úquality)Ú	reconnectÚroomÚstreamÚstartWatching)ÚdataÚtyper)   Úpingz{"type":"pong"}z{"type":"keepSeat"}Ú
disconnectÚerrorÚbodyÚcode)ÚdefaultzServer response: éd   )Ú
isinstancer   ÚydlÚurlopenr   ÚparamsÚgetÚwrite_debugÚsendÚjsonÚdumpsÚrecvÚloadsÚdictr   r
   r	   r   )	r$   r   r:   r(   Úmessager#   ÚselfÚws_extractorr   s	        €€€€úQ/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/downloader/niconico.pyÚcommunicate_wsz4NiconicoLiveFD.real_download.<locals>.communicate_ws   sÜ  ø€ á¤
¨<Ô9JÔ KØ—X‘X×%Ñ%¤gØ XÐ/JÐ$Kô'Mó N�à—8‘8—?‘?×&Ñ& y°%Ô8Ø×$Ñ$Ð%DÔEØ—‘œŸ
™
à%)à+/Ø(3ñ!ð
 2AØ).Ø'-Ø(-Ø'.ñ#ñð ,ñ$ó õ ð$ "�Øñ [ØØŸ7™7›9�DÙØ ÜŸ:™: dÓ+�DÙ¤z°$¼Ô'=Ø Ø—x‘x Ó'¨6Ò1ØŸ™Ð 2Ô3ØŸ™Ð 6Õ7ØŸ™ &Ó)¨\Ò9Ø×(Ñ(¨Ô.Ø#÷[ð [ð Ÿ™ &Ó)¨WÒ4Ø×(Ñ(¨Ô.Ü".¨t°f¸fÄ{ÀmÐ5TÐ^bÔ"c˜Ü,¨WÓ5÷#[ñ [ð$ Ÿ™Ÿ™×,Ñ,¨Y¸Ô>Ø×(Ñ(Ð+<¼_ÈTÐSVÓ=WÐ<XÐ)YÔZñ% ÷[ð [ús   Â,BG$ÅAG$ÆAG$Ç$G-c                  óÊ   •— d} 	 	  ‰| «      }|du r	 d} y 	 d} Œ# t         $ r8}‰j                  d‰› d|› �«       t        j                  d«       Y d }~d} ŒRd }~ww xY w# d} w xY w)NFTz[niconico:live] z;: Connection error occured, reconnecting after 10 seconds: é
   )ÚBaseExceptionÚ	to_screenÚtimeÚsleep)r$   ÚretÚerA   r>   Úvideo_ids      €€€r@   Úws_mainz-NiconicoLiveFD.real_download.<locals>.ws_mainH   s‰   ø€ ØˆIØð
%Ù(¨Ó3�CØ˜d‘{Øð !%‘Ið #ð !%�Ið øô
 %ò Ø—N‘NØ*¨8¨*Ð4oÐpqÐorÐsôuä—J‘J˜r”NÛà $‘Iûðûð !%‘Iús&   † š	A£,AÁA ÁAÁA ÁA"T)ÚtargetÚdaemon)r   r2   r4   ÚcopyÚ	threadingÚThreadÚstartÚdownload)r>   ÚfilenameÚ	info_dictÚoptsÚdlÚnew_info_dictrK   ÚthreadrA   r#   rJ   r?   r   s   `       @@@@@r@   Úreal_downloadzNiconicoLiveFD.real_download   s�   ý€ Ø˜T‘?ˆØÐ-Ñ.ˆØ(,¨]Ñ(;¸TÀ$¹ZÈÈhÉÐ%ˆ�˜vÜ�d—h‘h §¡Ò 1¨rÓ2ˆà!Ÿ™Ó(ˆØ$*ˆ�jÑ!÷-	[ö^	%ô ×!Ñ!¨¸Ô>ˆØ�‰Œà�{‰{˜8 ]Ó3Ð3ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rY   © rZ   r@   r   r      s   „ Ù9óJ4rZ   r   )r8   rO   rF   Úcommonr   Úexternalr   Ú
networkingr   Únetworking.websocketr   Úutilsr	   r
   r   Úutils.traversalr   r   r_   rZ   r@   ú<module>rf      s1   ðÛ Û Û å "Ý Ý  Ý 4ß ?Ñ ?Ý *ôM4�^õ M4rZ   