Ë
    š„jÍ  ã                   ó6   — d dl mZ ddlmZmZ  G d„ de«      Zy)é   )ÚInfoExtractoré   )ÚExtractorErrorÚtry_getc            	       ó^   — e Zd ZdZdZdZddddddd	d
œdd	iddœddddddd	d
œdd	iddœgZd„ Zy)Ú
SaitosanIEFÚSaitosanz>https?://(?:www\.)?saitosan\.net/bview.html\?id=(?P<id>[0-9]+)z.http://www.saitosan.net/bview.html?id=10031846Ú10031846Úmp4u   äº•ä¸‹åŽŸ å’Œå¼¥zEhttp://111.171.196.85:8088/921f916f-7f55-4c97-b92e-5d9d0fef8f5f/thumbT)ÚidÚextÚtitleÚuploaderÚ	thumbnailÚis_liveÚskip_downloadzBroadcasts are ephemeral)ÚurlÚ	info_dictÚparamsÚskipz.http://www.saitosan.net/bview.html?id=10031795Ú10031795u   æ©‹æœ¬zEhttp://111.171.196.85:8088/1a3933e1-a01a-483b-8931-af15f37f8082/thumbc           
      óR  — | j                  |«      }d}| j                  ||d¬«      j                  d«      }|d|z   z  }| j                  ||d¬«       d|› d�}t	        |«      › d	|› �j                  «       }| j                  |||d
¬«       | j                  ||d¬«      }|j                  d«      sb|j                  d«      xs i }t        |r=dj                  | j                  |j                  dd«      |j                  dd«      «      ndd|¬«      ‚| j                  ||dd¬«       | j                  ||d¬«      }|j                  d«      }	| j                  ||ddd¬«       ||j                  d«      | j                  |	|dd¬«      |	j                  d d!«      t        |d"„ «      dd#œS )$NzHhttp://hankachi.saitosan-api.net:8002/socket.io/?transport=polling&EIO=3zOpening socket)ÚnoteÚsidz&sid=zPolling socketz"420["room_start_join",{"room_id":"z"}]ú:zPolling socket with payload)Údatar   ÚokÚerrorz{} said: {} - {}Úcodeú?ÚmsgÚUnknownzfThe socket reported that the broadcast could not be joined. Maybe it's offline or the URL is incorrectT)ÚexpectedÚvideo_ids   26:421["room_finish_join",{}]z&Getting broadcast metadata from socketr   s   1:1zClosing socketF)r   r   ÚfatalÚnamer   )Úlivezav.m3u8Úthumbc                 ó   — | d   d   S )NÚbroadcast_userr&   © )Úxs    úP/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/saitosan.pyú<lambda>z*SaitosanIE._real_extract.<locals>.<lambda>I   s   € °!Ð4DÑ2EÀfÑ2M€ ó    )r   r   Úformatsr   r   r   )Ú	_match_idÚ_download_socket_jsonÚgetÚ_download_webpageÚlenÚencoder   ÚformatÚIE_NAMEÚ_extract_m3u8_formatsÚreplacer   )
Úselfr   Úb_idÚbaser   ÚpayloadÚresponseÚerrÚb_dataÚm3u8_urls
             r-   Ú_real_extractzSaitosanIE._real_extract*   sÉ  € Ø�~‰~˜cÓ"ˆàYˆØ×(Ñ(¨¨tÐ:JÐ(ÓK×OÑOÐPUÓVˆØ�˜#‘Ñˆà×Ñ˜t TÐ0@ÐÔAØ7¸°v¸TÐBˆÜ˜“\�N ! G 9Ð-×4Ñ4Ó6ˆà×Ñ˜t T°Ð>[ÐÔ\Ø×-Ñ-¨d°DÐ?OÐ-ÓPˆØ�|‰|˜DÔ!Ø—,‘,˜wÓ'Ò-¨2ˆCÜ ÙloÐ"×)Ñ)¨$¯,©,¸¿¹ÀÈÓ8LÈcÏgÉgÐV[Ð]fÓNgÔhØ~Ø¨ô.ð .ð
 	×Ñ˜t TÐ0PÐWgÐÔhØ×+Ñ+¨D°$Ð=eÐ+ÓfˆØ—:‘:˜eÓ$ˆà×Ñ˜t T°Ð=MÐUZÐÔ[ð Ø—Z‘Z Ó'Ø×1Ñ1°(¸DÀ%ÈdÐ1ÓSØ!×)Ñ)¨)°WÓ=Ü Ñ(MÓNØñ
ð 	
r/   N)Ú__name__Ú
__module__Ú__qualname__Ú_WORKINGr8   Ú
_VALID_URLÚ_TESTSrC   r+   r/   r-   r   r      s�   „ Ø€HØ€GØR€Jà?àØØ'Ø*Ø`Øñ
ð ˜Tð
ð +ñð" @àØØØ Ø`Øñ
ð ˜Tð
ð +ñ	ð!€FóB!
r/   r   N)Úcommonr   Úutilsr   r   r   r+   r/   r-   ú<module>rL      s   ðÝ !ß +ôF
�õ F
r/   