a
    h                     @   s   d dl 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mZmZ G dd	 d	eZG d
d deZG dd deZG dd deZG dd deZdS )    N   )InfoExtractor   )	HTTPError)ExtractorError
clean_htmlextract_attributesparse_durationparse_qs)find_elementfind_elementstraverse_objc                   @   s|   e Zd ZdZdZdZdZddddd	d
ddddddddddeddddddddddedddddddgZdd  Z	d!S )"
VrSquareIEZvrsquarez	VR SQUAREhttps://livr.jpz)https?://livr\.jp/contents/(?P<id>[\w-]+)z#https://livr.jp/contents/P470896661Z
P470896661mp4u~   そこ曲がったら、櫻坂？ ７年間お疲れ様！菅井友香の卒業を祝う会！前半 2022年11月6日放送分z$md5:523726dc835aa8014dfe1e2b38d36cd1g     @zcount:2z+re:https?://media\.livr\.jp/vod/img/.+\.jpg)idexttitledescriptiondurationtags	thumbnail)url	info_dictz#https://livr.jp/contents/P589523973Z
P589523973u%   薄闇に仰ぐ しだれ桜の妖艶z$md5:a042f517b2cbb4ed6746707afec4d306g     @z
Paid video)r   r   skipz#https://livr.jp/contents/P316939908Z
P316939908u[   2024年5月16日（木） 「今日は誰に恋をする？」公演 小栗有以 生誕祭z$md5:2110bdcf947f28bd7d06ec420e51b619g    @z Premium channel subscribers onlyz#https://livr.jp/contents/P126481458T)r   Zonly_matchingc              
   C   s*  |  |}| ||}| j| j d| |ddd}t|ddkrL| d z| | j d| |}W nJ ty } z2t|jt	r|jj
d	krtd
dd W Y d }~n
d }~0 0 || ddg|| d|| jt|dddtf|ddd| d|dt|tddhthftddhdthfdS )Nz/webApi/contentsStatus/zChecking contents statusF)fatalZresult_codeZ40407zUnable to access this videoz/webApi/play/url/i  z+VR SQUARE app-only videos are not supportedT)expectedog:titleztwitter:titler   urls.r   r   zog:image)r   r   r   formatsr   zlayout-product-data-time)clsz
search-tag)r   r   )	_match_id_download_webpage_download_json	_BASE_URLr   Zraise_login_requiredr   
isinstancecauser   status_html_search_metaZ_extract_m3u8_formatsanyr   r	   r   r   )selfr   Zvideo_idwebpager'   Zweb_apie r-   N/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/vrsquare.py_real_extractB   s>    



zVrSquareIE._real_extractN)
__name__
__module____qualname__IE_NAMEZIE_DESCr$   
_VALID_URLlist_TESTSr/   r-   r-   r-   r.   r      sR   		)r   c                   @   s$   e Zd ZdZdddZd	ddZdS )
VrSquarePlaylistBaseIEr   r-   c                 c   s`   t |g |tdddhdthdthtR D ]$}| | j d|d tV  q6d S )NvideoT)r    html.zdata-urlz
/contents/)	r   r   r   strfilterZ
url_resultr$   removeprefixr   )r*   sourcekeysZurl_pathr-   r-   r.   _fetch_vidsd   s$    z"VrSquarePlaylistBaseIE._fetch_vidsNc                 c   sj   t dD ]Z}| j| j | |d| d|i|p4i d}| |dE d H  t|dthtfs
 qfq
d S )Nr   zDownloading playlist JSON page p)query)Zcontents_render_list.)Zhas_nextZhasNext)	itertoolscountr#   r$   r?   r   boolr)   )r*   pathZ
display_idrA   pageZajaxr-   r-   r.   _entriesl   s    zVrSquarePlaylistBaseIE._entries)r-   )N)r0   r1   r2   r$   r?   rG   r-   r-   r-   r.   r7   a   s   
r7   c                   @   s0   e Zd ZdZdZddddddgZd	d
 ZdS )VrSquareChannelIEzvrsquare:channelz%https?://livr\.jp/channel/(?P<id>\w+)z"https://livr.jp/channel/H372648599Z
H372648599u   AKB48＋チャンネルr   r   i  r   r   Zplaylist_mincountc                 C   s:   |  |}| ||}| | d| ||| d|S )Nz/ajax/channel/r   )r!   r"   playlist_resultrG   r(   r*   r   Zplaylist_idr+   r-   r-   r.   r/      s    
zVrSquareChannelIE._real_extractNr0   r1   r2   r3   r4   r6   r/   r-   r-   r-   r.   rH   w   s   	rH   c                   @   s.   e Zd ZdZdZdddiddgZdd	 Zd
S )VrSquareSearchIEzvrsquare:searchz2https?://livr\.jp/web-search/?\?(?:[^#]+&)?w=[^#]+zDhttps://livr.jp/web-search?w=%23%E5%B0%8F%E6%A0%97%E6%9C%89%E4%BB%A5r   u   #小栗有以<   rJ   c                 C   s*   t |d d }| | d|d|i|S )Nwr   z/ajax/web-search)r
   rK   rG   )r*   r   Zsearch_queryr-   r-   r.   r/      s    zVrSquareSearchIE._real_extractNrM   r-   r-   r-   r.   rN      s   rN   c                   @   s@   e Zd ZdZdZddddddd	d
ddddgZdd ZdS )VrSquareSectionIEzvrsquare:sectionz3https?://livr\.jp/(?:category|headline)/(?P<id>\w+)z#https://livr.jp/category/C133936275Z
C133936275u#   そこ曲がったら、櫻坂？VRrI   i4  rJ   z#https://livr.jp/headline/A296449604Z
A296449604u   AKB48 アフターVR   c                 C   s2   |  |}| ||}| | ||| d|S )Nr   )r!   r"   rK   r?   r(   rL   r-   r-   r.   r/      s
    
zVrSquareSectionIE._real_extractNrM   r-   r-   r-   r.   rQ      s    rQ   )rB   commonr   Znetworking.exceptionsr   utilsr   r   r   r	   r
   Zutils.traversalr   r   r   r   r7   rH   rN   rQ   r-   r-   r-   r.   <module>   s   N