o
    i51                     @   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i dddddddddd d!d"d#d$d%d&d'ed(ed)ed*ed+ed,d-d.d$d/ed0d1d2ed3ded4dd5d6ed7d8d9ddid:d;d<dd=d>d?d@d=dAdBeeedCdDdEdFdddGddHddIgZdJZ	e
jdKdL ZdMdN ZdUdOdPZdQdR ZdSdT ZdJS )V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-giocare505692mp4u2   Playstation VR cambierà il nostro modo di giocare]   zThe Power of Computing518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-01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/trailer 33e0edfba720ad73a8782157fdebc648r   RzmFKUDOUgwr   r   Trailerupload_date20150906descriptionz$md5:a5e802558d35247fee285875328c0b80uploader_idz@EMOTIONLabelChanneluploaderzEMOTION Label Channelr   3115r   r   r   availability
categories	age_limitr   channelchannel_follower_count
channel_idzUCQ5URCSs1f5Cz9rh-cDGxNQz8https://www.youtube.com/channel/UCQ5URCSs1f5Cz9rh-cDGxNQ   not_live406zOne-Punch Manz,https://www.youtube.com/@EMOTIONLabelChannelz4https://i.ytimg.com/vi/RzmFKUDOUgw/maxresdefault.jpg)channel_urlcomment_countr   r   heatmaplive_statusplayable_in_embedr   r   tagsuploader_urlr   )r   md5r   r   z_https://www.vvvvid.it/show/844/le-bizzarre-avventure-di-jojo-vento-aureo/938/527551/golden-wind527551zGolden Windi  z+Le bizzarre avventure di Jojo - Vento Aureo938r   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   only_matchingNc                 C   s   i |   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)geo_verification_headersself rH   K/home/ubuntu/.local/lib/python3.10/site-packages/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_jsonrJ   _conn_idrF   rH   rH   rI   _real_initialize{   s   
zVVVVIDIE._real_initializec                 C   sv   d| j i}|r|| | jd| d| || j||d}|s#|s#d S |ddkr7td| j|d d	d
|d S )NrM   z&https://www.vvvvid.it/vvvvid/ondemand//)rK   queryfatalresulterrorz{} said: {}messageT)expectedrL   )rO   updaterN   rJ   getr   rB   IE_NAME)rG   show_idpathvideo_idrS   rR   qresponserH   rH   rI   _download_info   s"   


zVVVVIDIE._download_infoc                 C   s   | dt| ddS )Nr   r   )r   r   )rY   r   )rG   
video_datarH   rH   rI   _extract_common_video_info   s   z#VVVVIDIE._extract_common_video_infoc                    s&  |  | \}}}| j|d| |d|id}t|ttfdd|}|d }g }dd }	i   fd	d
}
|d}d}dD ]}|d| }|sNqB|	|}|dkrtdd|	dd}| j
d|d| j|dddppi }|d}|r|d|	| 7 }|| j||dddd nC|dkr|| || n5|dkr dt |d  d!} n'|d"kr|| j||dddd n|| jd#| d$|d%gd& |
| qB|s| d'< |
|d(  | |  ||t|d)|d*||t|d+t|d,t|d-d.	  S )/Nzseason/r]   )rR   c                    s   |  d kS )Nr]   )rY   )r   )vidrH   rI   <lambda>   s    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 }|||| < q#||}d}|D ]}|t|7 }qB|S )Nz@MNOPIJKL89+/4567UVWXQRSTEFGHABCDcdefYZabstuvopqr0123wxyzklmnghijc                 S   s  g }d}d}t | }|s||k r| | d> }|d7 }d}d}||k rg|| | d? 7 }|d7 }||k rd| |d  d> d@ }|| | d? 7 }|d7 }||k ra| |d  d> d@ }|| | 7 }|d7 }nd	}nd	}nd	}|| |dkrw|| |dkr|| |s||k s|S )
Nr   Fr   r            T)lenappend)mlobm_lennkjrH   rH   rI   f   s<   



z-VVVVIDIE._real_extract.<locals>.ds.<locals>.fr   r   re    )rj   indexri   rangechr)hgrs   cec_lenadrH   rH   rI   ds   s   "z"VVVVIDIE._real_extract.<locals>.dsc                    sX    s$| r&t d| }|r(t|d d< |d}|r*t| d< d S d S d S d S d S )Nz_(?:S(\d+))?Ep(\d+)r   r?   r   rA   )researchintgroup)r_urlmobjrA   )inforH   rI   metadata_from_url   s   
z1VVVVIDIE._real_extract.<locals>.metadata_from_url
video_typeF)rt   _sd
embed_infoz
video/kenczhttps?(://[^/]+)/z/z
https\1/i/z/manifest.f4mz/master.m3u8zhttps://www.vvvvid.it/kenckt)actionrM   r   )rR   rS   rV   ?r   hls)m3u8_idrS   z	video/rcszvideo/youtubeurl_transparent)_typeie_keyr   Tz
video/dashz+http://sb.top-ix.org/videomg/_definst_/mp4:z/playlist.m3u8f4m)skip_protocolsformatsr   length
show_titleviewsvideo_likesvideo_shares)	r   r   r   r   r   r   r   r   r   )_match_valid_urlgroupsr`   r   nextfilterrY   r   subreplacerN   rO   extend_extract_m3u8_formats_extract_akamai_formatsrX   r   r   _extract_wowza_formatsrb   r   )rG   r   r[   r   r]   r_   ra   r   r   r   r   r   
is_youtubequality
embed_codekenckenc_messagerH   )r   rc   rI   _real_extract   s   
5
	





zVVVVIDIE._real_extract)TN)__name__
__module____qualname___VALID_URL_BASE
_VALID_URLr   strlist_TESTSrO   	functoolscached_propertyrJ   rP   r`   rb   r   rH   rH   rH   rI   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-pass156zPsycho-Passz$md5:94d572c0bd85894b193b8aebc9a3a806)r   r   r&   .   )r   r   playlist_countzhttps://www.vvvvid.it/show/156TrC   c                 C   s  |  | \}}}| |d|}| j|d|dd}|s |d7 }g }|p%g D ]X}|dp.g }	|dp8|d}
|	D ]B}|d	du rEq;t|d
}t|d}|rW|sXq;| |}|dt d	|||g|d|d||
d |
| q;q&| |||d|dS )Nzseasons/zinfo/F)rS   z/titleepisodesnamer   playabler   r]   r   rQ   r&   )r   r   r   r   r&   r   playlist_title)r   r   r`   rY   r   rb   rX   r	   r   joinrj   playlist_result)rG   r   base_urlr[   r   seasons	show_infoentriesr@   r   r   r   r   r]   r   rH   rH   rI   r   ,  sF   
	zVVVVIDShowIE._real_extractN)r   r   r   r	   r   r   r   r   rH   rH   rH   rI   r     s    	r   )r   r   commonr   youtuber   utilsr   r   r   r	   r   rH   rH   rH   rI   <module>   s      