o
    i                     @   sT   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 deZdS )	   )InfoExtractor   )	HTTPError)ExtractorError
clean_htmlint_or_nonestr_or_noneurl_or_none)traverse_objc                   @   s   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.d/ Zd0d1 Zd2S )3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                 C   s"   | j d| 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_id r0   I/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/skeb.py	_call_apiF   s   zSkebIE._call_apic                 C   s  |  |dd\}}z| ||}W n; tyN } z/t|jtr'|jjdkr( |jj	 
 }| d|d}| dd| | ||}W Y d }~nd }~ww d|it|dthd	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d
 fdD ]m\}
}t|ddthf}|dvr| d| d q|	|| d|
 t|drdd|d dgind |dv rd nd d!|t|dthfd"thfd#thfd$t|dd%thfd&thfd'thfd(thfd)f q| j|	|fi |S )*Nr   r   i  z2document\.cookie\s*=\s*["\']request_key=([^;"\']+)zrequest keyzskeb.jprequest_keynsfwc                 S   s   | rdS d S )N   r0   )xr0   r0   r1   <lambda>]       z&SkebIE._real_extract.<locals>.<lambda>)source_bodybodygenretag_list.creatorname)	age_limitr   r   r    r   previewsc                 S   s   t |d S )Nr   )r	   )_vr0   r0   r1   r7   f   r8   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   fpsrO   rP   )_match_valid_urlgroupr2   r   
isinstancecauser   statusresponsereaddecode_search_regex_set_cookier
   boolr   filteranystrall	enumeratereport_warningappendr	   getr   r   playlist_result)r.   r   r   r/   worksewebpagevalueinfoentriesidxpreviewr   r0   r0   r1   _real_extractM   sv   

 
zSkebIE._real_extractN)__name__
__module____qualname__
_VALID_URL_TESTSr2   rn   r0   r0   r0   r1   r      sl    7r   N)commonr   networking.exceptionsr   utilsr   r   r   r   r	   utils.traversalr
   r   r0   r0   r0   r1   <module>   s
    