3
™b`¹  ã               @   sH   d dl mZ d dlZddlmZ ddlmZmZmZ G dd„ deƒZ	dS )	é    )Úunicode_literalsNé   )ÚInfoExtractoré   )ÚExtractorErrorÚint_or_noneÚstr_or_nonec               @   sX   e Zd ZdZddddddœdd	id
œddddddœdd	id
œgZdZdd„ Zdd„ ZdS )ÚVVVVIDIEzxhttps?://(?:www\.)?vvvvid\.it/(?:#!)?(?:show|anime|film|series)/(?P<show_id>\d+)/[^/]+/(?P<season_id>\d+)/(?P<id>[0-9]+)z]https://www.vvvvid.it/#!show/434/perche-dovrei-guardarlo-di-dario-moccia/437/489048/ping-pongZ b8d3cecc2e981adc3835adf07f6df91bZ489048Úmp4z	Ping Pong)ÚidÚextÚtitleÚskip_downloadT)ÚurlÚmd5Ú	info_dictÚparamszNhttps://www.vvvvid.it/#!show/376/death-note-live-action/377/482493/episodio-01Z 33e0edfba720ad73a8782157fdebc648Z482493zEpisodio 01Nc             C   s"   | j dd | jƒ d�d d | _d S )Nz https://www.vvvvid.it/user/login)ÚheadersÚdataÚconn_id)Ú_download_jsonÚgeo_verification_headersÚ_conn_id)Úself© r   úGC:\Users\Broad\Desktop\All-Down\binaries\youtube_dl\extractor\vvvvid.pyÚ_real_initialize+   s    zVVVVIDIE._real_initializec                sÜ  t j| j|ƒjƒ \}}}| jd||f || jƒ d| jid�}|d dkrbtd| j|d f dd	�‚t	|ƒ‰ t
t‡ fd
d„|d ƒƒd }g }dd„ }xÐd.D ]È}	|jd|	 ƒ}
|
s²qš||
ƒ}
|jdƒ}|d/k�rLt jdd|
ƒjddƒ}
|dk�r0| jd|d| j|
dœdd��pi }|jdƒ}|�r0|
d||ƒ 7 }
|j| j|
|d d!dd"�ƒ qš|j| jd#|
 |ƒƒ qšW | j|ƒ ||d$ ||jd%ƒt|jd&ƒƒ|jd'ƒ||jd(ƒt|jd)ƒƒt|jd*ƒƒ|d$ t|jd+ƒƒt|jd,ƒƒd-œS )0Nz2https://www.vvvvid.it/vvvvid/ondemand/%s/season/%sr   )r   ÚqueryÚresultÚerrorz%s said: %sÚmessageT)Úexpectedc                s   | j dƒˆ kS )NÚvideo_id)Úget)Úepisode)Úvidr   r   Ú<lambda>=   s    z(VVVVIDIE._real_extract.<locals>.<lambda>r   r   c             S   s¦   d}dd„ }g }x| D ]}|j |j|ƒƒ qW t|ƒ}xDt|d d ddƒD ],}|||  ||d |  A }|||| < qLW ||ƒ}d}x|D ]}|t|ƒ7 }qŽW |S )	Nz@MNOPIJKL89+/4567UVWXQRSTEFGHABCDcdefYZabstuvopqr0123wxyzklmnghijc             S   s  g }d}d}t | ƒ}xô| o"||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 }qÒd}qØd}nd}|j|ƒ |dkrô|j|ƒ |dkr|j|ƒ qW |S )Nr   Fr   r   é   éÿ   é   Téÿÿÿÿr*   r*   r*   )ÚlenÚappend)ÚmÚlÚoÚbZm_lenÚnÚkÚjr   r   r   ÚfD   s:    


z-VVVVIDIE._real_extract.<locals>.ds.<locals>.fr   r   Ú r*   r*   )r,   Úindexr+   ÚrangeÚchr)ÚhÚgr4   ÚcÚeZc_lenÚaÚdr   r   r   ÚdsA   s    "

z"VVVVIDIE._real_extract.<locals>.dsÚ_sdr5   Ú
embed_infoÚ
video_typeú	video/rcsú
video/kenczhttps?://([^/]+)/z/zhttps://\1/i/z/manifest.f4mz/master.m3u8zhttps://www.vvvvid.it/kencZkt)Úactionr   r   F)r   Úfatalú?r
   Úhls)Úm3u8_idrF   z;http://sb.top-ix.org/videomg/_definst_/mp4:%s/playlist.m3u8r   Ú	thumbnailÚlengthÚ
show_titleÚseason_numberr   ÚnumberÚviewsZvideo_likes)r   r   ÚformatsrJ   ÚdurationÚseriesÚ	season_idrM   Ú
episode_idÚepisode_numberÚepisode_titleÚ
view_countÚ
like_count)r@   r5   )rC   rD   )ÚreÚmatchÚ
_VALID_URLÚgroupsr   r   r   r   ÚIE_NAMEÚintÚlistÚfilterr#   ÚsubÚreplaceÚextendÚ_extract_m3u8_formatsÚ_extract_wowza_formatsÚ_sort_formatsr   r   )r   r   Úshow_idrS   r"   ÚresponseÚ
video_datarP   r?   ÚqualityÚ
embed_coderB   ZkencZkenc_messager   )r%   r   Ú_real_extract0   sd    
5





zVVVVIDIE._real_extract)Ú__name__Ú
__module__Ú__qualname__r[   Ú_TESTSr   r   rl   r   r   r   r   r	      s    
r	   )
Ú
__future__r   rY   Úcommonr   Úutilsr   r   r   r	   r   r   r   r   Ú<module>   s   