
    uki                     Z    d dl mZ 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y)	   )InfoExtractor   )	HTTPError)ExtractorError
clean_htmlint_or_nonestr_or_noneurl_or_none)traverse_objc                       e Zd ZdZdddddddgd	d
dd	ddddddddgdd	ddd
ddddddddgdd d!gd"d#d$d%d&d'd(d)d*d	d+d,gd-
dgZd. Zd/ Zy0)1SkebIEz=https?://skeb\.jp/@(?P<uploader_id>[^/?#]+)/works/(?P<id>\d+)z"https://skeb.jp/@riiru_wm/works/10466853mp4z10-1z$md5:1ec50901efc3437cfbfe3790468d532di9  videozre:https?://.+u   姫ノ森りぃる@ひとづまriiru_wm)	idexttitledescriptiondurationgenres	thumbnailuploaderuploader_id)url	info_dictz%https://skeb.jp/@furukawa_nob/works/3489408mp3z3-1z$md5:6de1f8f876426a6ac321c123848176a8b   voicezcount:11u%   古川ノブ@宮城の動画勢Vtuberfurukawa_nob)
r   r   r   r   r   r   tagsr   r   r   z*https://skeb.jp/@Rizu_panda_cube/works/626626z$md5:834557b39ca56960c5f77dd6ddabe775u   りづ100億%Rizu_panda_cubezcount:57)r   r   r   r   r"   r   r   zSkipping unsupported extension)r   r   playlist_countexpected_warningsz'https://skeb.jp/@Yossshy_Music/works/13wav5566495z13-1z$md5:1026b8b9ae38c67c2d995970ec196550YossshyYossshy_MusiciP  zcount:59music)
r   r   r   r   r   r   r   r   r"   r   c                 <    | j                  d| d| |ddd      S )Nzhttps://skeb.jp/api/users/z/works/zapplication/jsonzBearer null)AcceptAuthorization)headers)_download_json)selfr   work_ids      P/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/yt_dlp/extractor/skeb.py	_call_apizSkebIE._call_apiF   s8    ""(WWIF,!.Z #  	    c                    | j                  |      j                  dd      \  }}	 | j                  ||      }d|it        |dt        hd	 hfd
t        ht         t"        fdt$        ht         t&        t         fddt$        ht         t&        t         fddt$        hfd      }g }	t)        t        |dd f      d      D ]  \  }
}t        |ddt$        hf      }|dvr| j+                  d| d       4|	j-                  || d|
 t/        |j1                  d            rdd|d   dgind |dv rdnd d |t        |dt2        hfd!t.        hfd"t.        hfd#      t        |dd$t4        hfd%t4        hfd&t4        hfd't4        hfd(f               | j6                  |	|fi |S # t        $ r}t	        |j
                  t              r|j
                  j                  dk7  r |j
                  j                  j                         j                         }| j                  d|d      }| j                  dd|       | j                  ||      }Y d }~d }~ww xY w))Nr   r   i  z2document\.cookie\s*=\s*["\']request_key=([^;"\']+)zrequest keyzskeb.jprequest_keynsfwc                     | rdS d S )N    )xs    r3   <lambda>z&SkebIE._real_extract.<locals>.<lambda>]   s    q d r5   )source_bodybodygenretag_list.creatorname)	age_limitr   r   r"   r   previewsc                     t        |d         S )Nr   )r
   )_vs     r3   r=   z&SkebIE._real_extract.<locals>.<lambda>f   s    T_`abg`hTi r5   r   information	extension)r   r   r'   z Skipping unsupported extension ""-vtt_urljavtt)r   r   )r   r'   none)r   r   	subtitlesvcodec
poster_urlr   )r   r   r   r   
frame_rateheightwidth)r   fpsrU   rV   )_match_valid_urlgroupr4   r   
isinstancecauser   statusresponsereaddecode_search_regex_set_cookier   boolr   filteranystrall	enumeratereport_warningappendr
   getr	   r   playlist_result)r1   r   r   r2   worksewebpagevalueinfoentriesidxpreviewr   s                r3   _real_extractzSkebIE._real_extractM   s   #44S9??tTW		9NN;8E ;	
5$tf/J.KL 7*vsS"SE63?#S3%fE&6# 	
 %l5:Gi:j&kmno 	LCwcU(KLC//##&Fse1$MNNN#9AcU+ !Y!78	 $&y1 
 ?C$'>$9&t  w+/".!>!K=1)   w!+k] ;(;-8'+7%}5	9 ) ! 	< $t##GW===g  	9aggy1QWW^^s5Jgg&&++-446G&&EwP]_EYu=NN;8E	9s   F 	I(BIIN)__name__
__module____qualname__
_VALID_URL_TESTSr4   rt   r;   r5   r3   r   r      s    QJ3Ai*9%

 7Ai*?)
 <A',i
 >? 9A!**i
O5Fn7>r5   r   N)commonr   networking.exceptionsr   utilsr   r   r   r	   r
   utils.traversalr   r   r;   r5   r3   <module>r~      s(    ! -  +w>] w>r5   