
    VGh51                     l    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e      Z
 G d	 d
e
      Zy)    N   )InfoExtractor)	YoutubeIE   )ExtractorErrorint_or_nonestr_or_nonec                   l   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                  dK        ZdL ZdPdMZdN ZdO ZyJ)Q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                 .    i | j                         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selfs    `/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/vvvvid.py_headerszVVVVIDIE._headerst   s+    
++-
  O
 	
    c                 V    | j                  dd | j                        d   d   | _        y )Nz https://www.vvvvid.it/user/login)headersdataconn_id)_download_jsonrL   _conn_idrI   s    rK   _real_initializezVVVVIDIE._real_initialize{   s5    ++.$-- , ))/11:<rM   c                     d| j                   i}|r|j                  |       | j                  d| d| || j                  ||      }|s|sy |j	                  d      dk(  r*t        dj                  | j                  |d         d	
      |d   S )NrQ   z&https://www.vvvvid.it/vvvvid/ondemand//)rO   queryfatalresulterrorz{} said: {}messageT)expectedrP   )rS   updaterR   rL   getr   rD   IE_NAME)rJ   show_idpathvideo_idrX   rW   qresponses           rK   _download_infozVVVVIDIE._download_info   s    t}}
 HHUO&&4WIQtfEdmm1E ' C E<<!W, !5!5hy1"3=AC CrM   c                 Z    |j                  d      t        |j                  d            dS )Nr   r   )r   r   )r^   r	   )rJ   
video_datas     rK   _extract_common_video_infoz#VVVVIDIE._extract_common_video_info   s)    #4%jnnT&:;
 	
rM   c                    | j                  |      j                         \  }}}| j                  |d| |d|i      }t        |      t	        t        fd|            }|d   }g }d }	i fd}
|j                  d      }d	}d
D ]n  }|j                  d|z         }|s |	|      }|dk(  rt        j                  dd|      j                  dd      }| j                  d|d| j                  |dd	      xs i }|j                  d      }|r|d |	|      z   z  }|j                  | j                  ||ddd	             n|dk(  r"|j                  | j                  ||             n|dk(  r+j                  dt!        j"                         |d       d} n^|dk(  r&|j                  | j                  ||ddd	             n(|j                  | j%                  d | d!|d"g#              |
|       q |s|d$<    |
|j                  d%             j                  | j'                  |             j                  ||t)        |j                  d&            |j                  d'      ||t)        |j                  d(            t)        |j                  d)            t)        |j                  d*            d+	       S ),Nzseason/rb   )rW   c                 ,    | j                  d      k(  S )Nrb   )r^   )r   vids    rK   <lambda>z(VVVVIDIE._real_extract.<locals>.<lambda>   s    GKK
3s: rM   r   c                    d}d }g }| D ]"  }|j                  |j                  |             $ t        |      }t        |dz  dz
  dd      D ]  }|||z     ||dz   |z     z  }||||z  <      ||      }d}|D ]  }|t	        |      z  } |S )Nz@MNOPIJKL89+/4567UVWXQRSTEFGHABCDcdefYZabstuvopqr0123wxyzklmnghijc                    g }d}d}t        |       }|s||k  r| |   dz  }|dz  }d}d}||k  rZ|| |   dz	  z  }|dz  }||k  rB| |dz
     dz  dz  }|| |   dz	  z  }|dz  }||k  r| |dz
     dz  dz  }|| |   z  }|dz  }nd	}nd	}nd	}|j                  |       |dk7  r|j                  |       |dk7  r|j                  |       |s||k  r|S )
Nr   Fr   r            T)lenappend)mlobm_lennkjs           rK   fz-VVVVIDIE._real_extract.<locals>.ds.<locals>.f   s   A1u9!	AFAAA5yQqTQYQu9!"1q5Q# 5A1NAFA 5y%&q1uX]c$9 !QqT	 !Q$( $A HHQKBwBw5 1u96 rM   r   r   ro    )rt   indexrs   rangechr)hgr}   cec_lenads           rK   dsz"VVVVIDIE._real_extract.<locals>.ds   s    RA D A %$% FE519q="b1 !a%iL1a!eu_#55 !e)! !AA SV HrM   c                     s\| rYt        j                  d|       }|r@t        |j                  d            d<   |j                  d      }|rt        |      d<   y y y y y )Nz_(?:S(\d+))?Ep(\d+)r   rA   r   rC   )researchintgroup)r_urlmobjrC   infos      rK   metadata_from_urlz1VVVVIDIE._real_extract.<locals>.metadata_from_url   sd    Eyy!7?-0A-?D)*$(JJqMM$03M0B_- %  "4rM   
video_typeF)r~   _sd
embed_infoz
video/kenczhttps?(://[^/]+)/z/z
https\1/i/z/manifest.f4mz/master.m3u8zhttps://www.vvvvid.it/kenckt)actionrQ   r   )rW   rX   r[   ?r   hls)m3u8_idrX   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groupsre   r   nextfilterr^   r   subreplacerR   rS   extend_extract_m3u8_formats_extract_akamai_formatsr]   r   r   _extract_wowza_formatsrh   r   )rJ   r   r`   r   rb   rd   rg   r   r   r   r   r   
is_youtubequality
embed_codekenckenc_messager   rk   s                    @@rK   _real_extractzVVVVIDIE._real_extract   s   '+'<'<S'A'H'H'J$H&&wyk*Z2 ' 4 (m&:HF G
7#3	j 	C  ^^L1

" "	*G#w(>?JJJ\)VV$:M:V^^_np~
**0("&#'==)C # + $ *
 (*   $xx	2#<(8"88Jt99%e  :  M N{*t;;JQR..'..0% 
 "
|+t99%e  :  M N t::A*^\^fx}w~  ;  @ Aj)E"	*H %DO*..56D33J?@#JNN8$<= nn\2"%jnnW&=>%jnn]&CD'
~(FG

 
	 rM   )TN)__name__
__module____qualname___VALID_URL_BASE
_VALID_URLr   strlist_TESTSrS   	functoolscached_propertyrL   rT   re   rh   r    rM   rK   r   r      s1   YO$%%]^J DI.K k
 T
#, `"
 T
 F Q1
-
5
 Y
 :	

 A
 1
 /
 &
 #
 #
 C
 C
 $
 
 .
  %c!
" 4#
$ V  %!%%JO;
@ T
G&P q"C$ \ 
$ "
)2 c}aFD H
 
<
  
DrM   r   c                   P    e Zd Zdej                   dZddddddd	d
ddgZd Zy)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/156TrE   c                 <   | j                  |      j                         \  }}}| j                  |d|      }| j                  |d|d      }|s|dz  }g }|xs g D ]  }|j                  d      xs g }	|j                  d      xs |j                  d      }
|	D ]  }|j                  d	      du rt	        |j                  d
            }t	        |j                  d            }|r|sP| j                  |      }|j                  dt        j                         dj                  |||g      |j                  d      |j                  d      ||
d       |j                  |         | j                  |||j                  d      |j                  d            S )Nzseasons/zinfo/F)rX   z/titleepisodesnamer   playabler   rb   r   rV   r(   )r   r   r   r   r(   r   playlist_title)r   r   re   r^   r	   rh   r]   r   r   joinrt   playlist_result)rJ   r   base_urlr`   r   seasons	show_infoentriesrB   r   r   r   r   rb   r   s                  rK   r   zVVVVIDShowIE._real_extract,  s   (,(=(=c(B(I(I(K%':%%Z- ''Wj ( 7	  H}" 	%Fzz*-3H#ZZ/I9==3IN# %;;z*e3'K(@A	&w{{:'>?!h66w?.&oo/88Xy($CD$[[1#*;;}#=!*&4  t$#%	%, ##WimmG4immM6RT 	TrM   N)r   r   r   r   r   r   r   r   r   rM   rK   r   r     sM    !(":":!;;rsJ:"A

  0F$TrM   r   )r   r   commonr   youtuber   utilsr   r   r	   r   r   r   rM   rK   <module>r      s8     	 !  M} M`3T8 3TrM   