
    V|h>                     j    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Jr  SSKJr   " S S\5      rg)	    N   )InfoExtractor   )
ExtractorError
clean_htmlfilter_dictget_element_by_idint_or_nonejoin_nonempty
js_to_json	qualitiesurl_or_noneurljoin)traverse_objc                   n    \ rS rSrSrSSSSSSS	S
SS.S.SSSSSSSSSS.S.SSS./rSS jrS rS rSr	g)KukuluLiveIE   z1https?://live\.erinn\.biz/live\.php\?h(?P<id>\d+)z*https://live.erinn.biz/live.php?h675134569 e380fa6a47fc703d91cea913ab44ec2e	675134569mp4u   プロセカu*   テストも兼ねたプロセカ配信。i||e20231216zre:^https?://.*)idexttitledescription	timestampupload_date	thumbnail)urlmd5	info_dictz*https://live.erinn.biz/live.php?h102338092 dcf5167a934b1c60333461e13a81a6e2	102338092u   Among Usで遊びます！！uK   VTuberになりましたねんねこ㌨ですよろしくお願いしますi-e20240107z*https://live.erinn.biz/live.php?h878049531T)r   only_matchingNc                     X$(       a  SOS-  nU R                  SUSU S3SU S3[        USU S3US	.5      S
9n[        R                  R	                  U5      $ )Nz (force_h264) z.https://live.erinn.biz/live.player.fplayer.phpzDownloading z quality metadatazUnable to download get
liveByAjax)hashaction
force_h264query)_download_webpager   urllibparseparse_qs)selfvideo_iddesccoder,   qss         U/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/kukululive.py_get_quality_metaKukuluLiveIE._get_quality_meta2   sz    :25##<h4& 126I$O`4a vZ0(  $  ||$$R((    c                 d   [        USS[        145      n[        USS[        145      n[        S5      " U5      n[        USS[        145      (       a  UR	                  UUS   S   SUUS.5        [        USS[        145      (       a(  UR	                  [        US	5      US   S   S
SUS.5        g g )Nvcodecr   now_quality)lowh264highhlsaddrr   )	format_idr   r   r=   qualityhlsaddr_audioonly	audioonlym4anone)r   strr   r   appendr   )r3   formatsquality_metar=   rD   quality_prioritys         r8   _add_quality_formats!KukuluLiveIE._add_quality_formats>   s    lXq3%,@A|mQ-FG$%<=gFy!k]&CDDNN$#I.q1 +  ':A}&MNNNN*7K@#$78; +  Or;   c                 0  ^
^^^ U R                  U5      mU R                  UT5      nSU;   a
  [        SSS9e[        [	        SUR                  SS5      R                  SS	5      5      5      mU R                  S
U5      m
U R                  SS/U5      mU R                  SUSSS9(       as  / nS Hb  u  pEU R                  TXE5      nU R                  X65        US:X  d  M0  [        US5      S:X  d  MB  U R                  X0R                  TXESS95        Md     TTT
TSUS.$ U R                  STSSST0S9n[        U R                  SUSTS[        S 9S! 5      nS&U
UUU4S" jjn	[        U5      S#:X  a  [        U	" USS$95      $ U R                  U	" U5      TTT
SS%9$ )'Nu8   >タイムシフトが見つかりませんでした。<zThis stream has expiredT)expected	livetitlez<SPANz<spanzSPAN>zspan>Descriptionzog:imageztwitter:imagez(var\s+timeshift\s*=\s*false)zis livestreamF)default))rA   Z)r?   ForceLowrA   )r=   r   HEVC1)r,   )r   r   r   r   is_liverK   z1https://live.erinn.biz/live.timeshift.fplayer.phpzDownloading player htmlzUnable to download player htmlr*   r-   zvar\s+fplayer_source\s*=zstream dataz\[(?s:.+)\])contains_patterntransform_sourcec                     US   $ )Nfile )_vs     r8   <lambda>,KukuluLiveIE._real_extract.<locals>.<lambda>x   s    XYZ`Xar;   c              3      >#    [        U S5       HP  u  p#U(       a  T SU 3OTU(       a  T SU S3OTT[        US[        145      T[        SUS   5      SS	S
./S.v   MR     g 7f)Nr   r_   z (Part )
time_startzhttps://live.erinn.bizr]   r   m3u8_native)r   r   protocol)r   r   r   r   r   rK   )	enumerater   r
   r   )segmentsplaylistisegmentr   r   r   r4   s       r8   entries+KukuluLiveIE._real_extract.<locals>.entriesz   s     '!4
/7XJas+X6>wgaS2E#.!-g{m7T!U!*&'?Q$$1!    5s   A"A%r   )rj   )multi_video)T)	_match_idr/   r   r   r	   replace_html_search_meta_search_regexr9   rN   r   _search_jsonr   lennextplaylist_result)r3   r   htmlrK   r5   r6   rL   player_htmlsourcesrm   r   r   r   r4   s             @@@@r8   _real_extractKukuluLiveIE._real_extractS   s   >>#&%%c84EM !:TJJk4<<+I+Q+QRY[b+cdf,,]DA**J+H$O	>o_deG D#55hK))'@6>l<&OSY&Y--!7!7$Y\!7!]_	 !E *&"  ,,?%'GPVX`Oa - c t00'mX+j  1  JKac	 	 w<1%899##GG$4h{`d#eer;   r^   )N)
__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSr9   rN   r{   __static_attributes__r^   r;   r8   r   r      sw    EJ;1#G#%+
 <14h#%+
 <1F:
)*9fr;   r   )urllib.parser0   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   utils.traversalr   r   r^   r;   r8   <module>r      s/     !   +yf= yfr;   