
    Ği)                         d dl Z d dl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 G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    N   )InfoExtractor   )
clean_htmlint_or_nonejoin_nonemptystr_or_noneurl_or_none)traverse_objc                   <    e Zd ZdZdZdZdZdZdZdZ	d Z
d Zd ZdS )TapTapBaseIEz`V=1&PN=WebApp&LANG=zh_CN&VN_CODE=102&LOC=CN&PLT=PC&DS=Android&UID={uuid}&OS=Windows&OSV=10&DT=PCz:https://www.taptap.cn/webapiv2/video-resource/v1/multi-getNidc                     i |d| j                             t          j                              i} | j        ||fd|i|d         S )NzX-UA)uuidquerydata)_X_UAformatr   uuid4_download_json)selfurlvideo_idr   kwargss        \C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/taptap.py_get_apizTapTapBaseIE._get_api   sV    G5G&$*"3"3"3"F"FGG"t"3HHHHHPP    c                    |                      | j        |d|i          d         d         }t          |ddt          ht          f          }|                     ||d          }|D ]S}t          j        d	|                    d
d                    r(t          |                    d          dd          |d<   Tt          |          |dt          |ddt          hfddt          hfdd          S )N	video_idsr   listr   play_url)url_h265r   F)fatalz^(hev|hvc|hvt)\dvcodec 	format_idh265_)delim)r   formatsinfoduration	thumbnail)original_urlr   )r-   r.   )get_all)r   
_VIDEO_APIr   r
   any_extract_m3u8_formatsresearchgetr   strr   )r   r   
video_data	video_urlr+   fmts         r   _extract_videozTapTapBaseIE._extract_video   s"   ]]4?H[RZD[]\\]cdefg
 !j:MP[}^a-bcc	,,Y,NN 	Z 	ZCy,cggh.C.CDD Z#01E1EvUX#Y#Y#YK  h--
 
 :#Z+?)+B[MR) )   
 	
r   c                 N                          |          } j        |i}t                                j        ||           j                  }t          | j                   fdt          t          | j                            D             }  j	        |fi d|iS )Nr    c                 B    g | ]}i                      |          S  )r;   ).0id_metainfor   s     r   
<listcomp>z.TapTapBaseIE._real_extract.<locals>.<listcomp>7   sI     = = = 

!!#&&
 = = =r   r   )
	_match_id_INFO_QUERY_KEYr   r   	_INFO_API
_DATA_PATH
_META_PATHset_ID_PATHplaylist_result)r   r   r   r   r   entriesrA   s   `     @r   _real_extractzTapTapBaseIE._real_extract/   s    >>#&&%x0MM$.(%M@@$/S S  do66= = = = = dDM::;;= = =
 $t#GEExEEHEEEEr   )__name__
__module____qualname__r   r1   rE   rD   rF   rI   rG   r   r;   rL   r>   r   r   r   r      sl        nEMJIOJHJQ Q Q
 
 
&F F F F Fr   r   c                      e Zd ZdZdZdZddehfdehfddd	ehfddd
ehe	hfddehfddehfdfZ
ddddddddddd	dddddddddddddddigdd id!d"d#d$d%d&d'd&d'd(d)d	ddd*dd$d%d+d&d'd&d'd(d)ddigdd id!d,d-d.d/d0d1d2d3d2d4d5d	dd id6gZd7S )8TapTapMomentIEz+https?://www\.taptap\.cn/moment/(?P<id>\d+)z/https://www.taptap.cn/webapiv2/moment/v3/detail)momenttopic)videos.	pin_videor   rR   created_timeedited_timeauthorusernamer   rS   titlesummary	timestampmodified_timestampuploaderuploader_idr\   descriptionz/https://www.taptap.cn/moment/194618230982052443194618230982052443uP   《崩坏3》开放世界「后崩坏书」新篇章 于淹没之地仰视辰星z$md5:cf66f7819d413641b8b28c8543f4ecdaiZ\a20211005u   乌酱532896	r   r\   rc   r_   upload_dater`   modified_datera   rb   r   	info_dict2202584mp4B   re:^https?://.*\.(png|jpg)r   extr\   rc   r-   r_   rh   r`   ri   ra   rb   r.   skip_downloadm3u8r   rj   playlist_countplaylistparamsz/https://www.taptap.cn/moment/521630629209573493521630629209573493uA   《崩坏：星穹铁道》黄泉角色PV——「你的颜色」z$md5:2c81245da864428c904d53ae4ad2182bi@Hf20240326u   崩坏：星穹铁道	4147325804006511   z/https://www.taptap.cn/moment/540493587511511299r   540493587511511299uF   中式民俗解谜《纸嫁衣7》、新系列《纸不语》公布！z$md5:d60842350e686ddb242291ddfb8e39c9iHFf20240517iQ3Gfu   TapTap 编辑7159244)r   rt   rj   rv   N)rM   rN   rO   
_VALID_URLrE   rI   r   r7   intr	   rG   _TESTSr>   r   r   rQ   rQ   ?   s       ?JAINH${m4,{m<vvu5 &$}E7SE*SE2  J A&gA#%",' #

 

 kE')&0!+$': 
   #F+= @ A&XA#%",'/&

 

 \E')&0!+3*: 
   #F+= @ A&]A#%",''$

 

 #F+ }MFFFr   rQ   c                   |    e Zd ZdZdZdZdehfddehehfdZdd	d
ddddddd
ddddidddd
ddddigddidgZ	dS )TapTapAppIEz(https?://www\.taptap\.cn/app/(?P<id>\d+)z,https://www.taptap.cn/webapiv2/app/v4/detail)
app_videosrU   .r   r\   rc   textr\   rc   z https://www.taptap.cn/app/168332168332u   原神z$md5:e345f39a5fea5de2a46923f70d5f76abr   r\   rc   r   rj   4058443rl      rn   r   rp   r\   rc   r-   r.   4058462i'  rq   rr   rs   N)
rM   rN   rO   r   rE   rI   r7   r   rG   r   r>   r   r   r   r      s        <J>I:HC5!%vuzlC J
 2A
 

 !E: 	
 !E: 	
& #F+7  FFFr   r   c                       e Zd ZdZdZdS )TapTapIntlBaseIEz|V=1&PN=WebAppIntl2&LANG=zh_TW&VN_CODE=115&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID={uuid}&CURR=&DT=PC&OS=Windows&OSV=NT%208.0.0z:https://www.taptap.io/webapiv2/video-resource/v1/multi-getN)rM   rN   rO   r   r1   r>   r   r   r   r      s         KEMJJJr   r   c                   l    e Zd ZdZdZdZdZdehfddehehfdZ	d	d
ddddddddddddigddidgZ
dS )TapTapAppIntlIEz(https?://www\.taptap\.io/app/(?P<id>\d+)z.https://www.taptap.io/webapiv2/i/app/v5/detailappr   r\   rc   r   r   z https://www.taptap.io/app/233287233287u   《虹彩六號 M》z$md5:418285f9c15347fc3cf3e3a3c649f182r   r   rj   
2149708997rl   N   rn   r   rq   rr   rs   N)rM   rN   rO   r   rE   rF   rI   r7   r   rG   r   r>   r   r   r   r      s        <J@IJ:HC5!%vuzlC J
 2+A
 

 "/E: 	
 	 #F+%  FFFr   r   c                       e Zd ZdZdZdZdZdZdehfdehfdd	e	hfdd
e
hehfde	hfdde	hfdZddddddddddd	dddddddddddddddigdd id!gZd"S )#TapTapPostIntlIEz)https?://www\.taptap\.io/post/(?P<id>\d+)z6https://www.taptap.io/webapiv2/creation/post/v1/detailid_strpost)rT   r   published_timerX   rZ   r[   r   r\   list_fieldsr]   r^   z!https://www.taptap.io/post/571785571785z(Arknights x Rainbow Six Siege | Event PVz$md5:f7717c13f6d3108e22db7303e6690bf7i=`20210302zTapTap Editor80224473rg   r   rj   
2149491903rl   z   rn   ro   rq   rr   rs   N)rM   rN   rO   r   rE   rD   rF   rI   r   r7   r   r	   rG   r   r>   r   r   r   r      s        =JHIOJ;H&6,{m<VcU+sek];C5!%y3%8 J 3?A#%",''%

 

 "CE')&0!++): 
   #F+=  FFFr   r   )r4   r   commonr   utilsr   r   r   r	   r
   utils.traversalr   r   rQ   r   r   r   r   r>   r   r   <module>r      s   				  ! ! ! ! ! !              + * * * * *-F -F -F -F -F= -F -F -F`Y Y Y Y Y\ Y Y Yx$ $ $ $ $, $ $ $NN N N N N| N N N
    &   >- - - - -' - - - - -r   