U
    g51                     @   s`   d dl Z d dlZddlmZ ddlmZ ddlmZmZm	Z	 G dd deZ
G d	d
 d
e
ZdS )    N   )InfoExtractor)	YoutubeIE   )ExtractorErrorint_or_nonestr_or_nonec                "   @   s  e Zd ZdZe dZddddddd	dd
eeeddddiddddddddiddddddddddddeeeeedded d!ed"ded#dd$d%ed&d'd(ddid)d*d+dd,d-d.d/d,d0d1eeed2d3d4d5ddd6dd7dd8gZd9Z	e
jd:d; Zd<d= ZdDd>d?Zd@dA ZdBdC Zd9S )EVVVVIDIEz@https?://(?:www\.)?vvvvid\.it/(?:#!)?(?:show|anime|film|series)/z8(?P<show_id>\d+)/[^/]+/(?P<season_id>\d+)/(?P<id>[0-9]+)zrhttps://www.vvvvid.it/show/498/the-power-of-computing/518/505692/playstation-vr-cambiera-il-nostro-modo-di-giocareZ505692mp4u2   Playstation VR cambierà il nostro modo di giocare]   zThe Power of ComputingZ518Z4747zPhttps://static.vvvvid.it/img/zoomin/28CA2409-E663-34F0-2B02E72356556EA3_500k.jpg)idexttitledurationseries	season_idepisode
episode_id
view_count
like_countrepost_count	thumbnailskip_downloadT)url	info_dictparamszNhttps://www.vvvvid.it/#!show/376/death-note-live-action/377/482493/episodio-01Z482493zEpisodio 01)r   r   r   z3Every video/rcs is not working even in real website)r   r   r   skipz?https://www.vvvvid.it/show/404/one-punch-man/406/486683/trailerZ 33e0edfba720ad73a8782157fdebc648ZRzmFKUDOUgwZTrailerZ20150906z$md5:a5e802558d35247fee285875328c0b80z@EMOTIONLabelChannelzEMOTION Label ChannelZ3115r   zUCQ5URCSs1f5Cz9rh-cDGxNQz8https://www.youtube.com/channel/UCQ5URCSs1f5Cz9rh-cDGxNQ   Znot_liveZ406zOne-Punch Manz,https://www.youtube.com/@EMOTIONLabelChannelz4https://i.ytimg.com/vi/RzmFKUDOUgw/maxresdefault.jpg)r   r   r   Zupload_datedescriptionZuploader_idZuploaderr   r   r   r   Zavailability
categoriesZ	age_limitZchannelZchannel_follower_countZ
channel_idZchannel_urlZcomment_countr   r   ZheatmapZlive_statusZplayable_in_embedr   r   tagsZuploader_urlr   )r   md5r   r   z_https://www.vvvvid.it/show/844/le-bizzarre-avventure-di-jojo-vento-aureo/938/527551/golden-windZ527551zGolden Windi  z+Le bizzarre avventure di Jojo - Vento AureoZ938r   Z9089zAhttps://static.vvvvid.it/img/thumbs/Dynit/Jojo/Jojo_S05Ep01-t.jpgzSeason 5   )r   r   r   r   r   r   r   episode_numberr   r   r   r   r   seasonseason_number)r   formatzQhttps://www.vvvvid.it/show/434/perche-dovrei-guardarlo-di-dario-moccia/437/489048r   Zonly_matchingNc                 C   s   |   ddiS )Nz
User-AgentzrMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.50 Safari/537.37)Zgeo_verification_headersself r*   ;/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/vvvvid.py_headerst   s     zVVVVIDIE._headersc                 C   s    | j dd | jdd d | _d S )Nz https://www.vvvvid.it/user/login)headersdataconn_id)_download_jsonr,   _conn_idr(   r*   r*   r+   _real_initialize{   s     zVVVVIDIE._real_initializec                 C   sv   d| j i}|r|| | jd| d| || j||d}|sF|sFd S |ddkrntd| j|d d	d
|d S )Nr/   z&https://www.vvvvid.it/vvvvid/ondemand//)r-   queryfatalresulterrorz{} said: {}messageT)expectedr.   )r1   updater0   r,   getr   r&   ZIE_NAME)r)   show_idpathvideo_idr5   r4   qresponser*   r*   r+   _download_info   s,     
    zVVVVIDIE._download_infoc                 C   s   | dt| ddS )Nr   r   )r   r   )r;   r   )r)   
video_datar*   r*   r+   _extract_common_video_info   s    z#VVVVIDIE._extract_common_video_infoc                    s8  |  | \}}}| j|d| |d|id}t|ttfdd|}|d }g }dd }	i   fd	d
}
|d}d}dD ]4}|d| }|sq|	|}|dkr"tdd|	dd}| j
d|d| j|dddpi }|d}|r|d|	| 7 }|| j||dddd n|dkr@|| || nr|dkrl dt |d  d!} qnF|d"kr|| j||dddd n || jd#| d$|d%gd& |
| q|s| d'< |
|d(  | |  ||t|d)|d*||t|d+t|d,t|d-d.	  S )/Nzseason/r>   )r4   c                    s   |  d kS )Nr>   )r;   )r   )vidr*   r+   <lambda>       z(VVVVIDIE._real_extract.<locals>.<lambda>r   c                 S   s   d}dd }g }| D ]}| || qt|}t|d d ddD ],}|||  ||d |  A }|||| < qF||}d}|D ]}|t|7 }q|S )Nz@MNOPIJKL89+/4567UVWXQRSTEFGHABCDcdefYZabstuvopqr0123wxyzklmnghijc                 S   s
  g }d}d}t | }|s||k r| | d> }|d7 }d}d}||k r|| | d? 7 }|d7 }||k r| |d  d> d@ }|| | d? 7 }|d7 }||k r| |d  d> d@ }|| | 7 }|d7 }qd	}qd	}nd	}|| |dkr|| |dkr|| q|S )
Nr   Fr   r            T)lenappend)mlobZm_lennkjr*   r*   r+   f   s:    


z-VVVVIDIE._real_extract.<locals>.ds.<locals>.fr   r   rG    )rL   indexrK   rangechr)hgrT   ceZc_lenadr*   r*   r+   ds   s    "z"VVVVIDIE._real_extract.<locals>.dsc                    sH    sD| rDt d| }|rDt|d d< |d}|rDt| d< d S )Nz_(?:S(\d+))?Ep(\d+)r   r#   r   r%   )researchintgroup)Zr_urlZmobjr%   )infor*   r+   metadata_from_url   s    
z1VVVVIDIE._real_extract.<locals>.metadata_from_url
video_typeF)rU   Z_sdZ
embed_infoz
video/kenczhttps?(://[^/]+)/z/z
https\1/i/z/manifest.f4mz/master.m3u8zhttps://www.vvvvid.it/kencZkt)actionr/   r   )r4   r5   r8   ?r
   Zhls)Zm3u8_idr5   z	video/rcszvideo/youtubeurl_transparent)_typeie_keyr   Tz
video/dashz+http://sb.top-ix.org/videomg/_definst_/mp4:z/playlist.m3u8Zf4m)Zskip_protocolsformatsr   length
show_titleZviewsZvideo_likesZvideo_shares)	r   r   r   r   r   r   r   r   r   )_match_valid_urlgroupsrA   rb   nextfilterr;   r`   subreplacer0   r1   extendZ_extract_m3u8_formatsZ_extract_akamai_formatsr:   r   rk   Z_extract_wowza_formatsrC   r   )r)   r   r<   r   r>   r@   rB   r   rl   r_   re   rf   Z
is_youtubeZqualityZ
embed_codeZkencZkenc_messager*   )rd   rD   r+   _real_extract   s      
 5	


 
    



    

  
zVVVVIDIE._real_extract)TN)__name__
__module____qualname___VALID_URL_BASE
_VALID_URLrb   strlist_TESTSr1   	functoolscached_propertyr,   r2   rA   rC   rv   r*   r*   r*   r+   r	      s   
    (b

r	   c                   @   s@   e Zd Zdej dZddddddd	d
ddgZdd ZdS )VVVVIDShowIEz(?P<base_url>z7(?P<id>\d+)(?:/(?P<show_title>[^/?&#]+))?)/?(?:[?#&]|$)z)https://www.vvvvid.it/show/156/psyco-passZ156zPsycho-Passz$md5:94d572c0bd85894b193b8aebc9a3a806)r   r   r   .   )r   r   Zplaylist_countzhttps://www.vvvvid.it/show/156Tr'   c                 C   s  |  | \}}}| |d|}| j|d|dd}|s@|d7 }g }|pJg D ]}|dp\g }	|dpp|d}
|	D ]}|d	dkrqvt|d
}t|d}|rv|sqv| |}|dt d	|||g|d|d||
d |
| qvqL| |||d|dS )Nzseasons/zinfo/F)r5   z/titleepisodesnamer   Zplayabler   r>   ri   r3   r   )rj   rk   r   r   r   r   playlist_title)ro   rp   rA   r;   r   rC   r:   r	   rk   joinrL   Zplaylist_result)r)   r   base_urlr<   rn   ZseasonsZ	show_infoentriesr$   r   r   r   r   r>   rd   r*   r*   r+   rv   ,  sT         
	   zVVVVIDShowIE._real_extractN)rw   rx   ry   r	   rz   r{   r~   rv   r*   r*   r*   r+   r     s   	r   )r   r`   commonr   Zyoutuber   utilsr   r   r   r	   r   r*   r*   r*   r+   <module>   s     