3
b`n                 @   sL   d dl mZ d dlZddlmZ ddlmZmZmZm	Z	 G dd deZ
dS )	    )unicode_literalsN   )InfoExtractor   )ExtractorErrorint_or_nonesmuggle_urlunsmuggle_urlc            
   @   sp   e Zd ZdZdZdddddddd	d
ddddddddidddddddddddgZd!ddZdd Zd S )"LiTVIEzdhttps?://(?:www\.)?litv\.tv/(?:vod|promo)/[^/]+/(?:content\.do)?\?.*?\b(?:content_)?id=(?P<id>[^&]+)z+https://www.litv.tv/vod/%s/content.do?id=%sz_https://www.litv.tv/vod/drama/content.do?brc_id=root&id=VOD00041610&isUHEnabled=true&autoPlay=1ZVOD00041606u	   花千骨)idtitle2   )url	info_dictplaylist_countZ 969e343d9244778cb29acec608e53640ZVOD00041610mp4u   花千骨第1集zre:https?://.*\.jpg$z$md5:c7017aa144c87467c4fb2909c4b05d6fr   )r   extr   	thumbnaildescriptionepisode_number
noplaylistTzGeorestricted to Taiwan)r   md5r   paramsskipz=https://www.litv.tv/promo/miyuezhuan/?content_id=VOD00044841&Z 88322ea132f848d6e3e18b32a832b918ZVOD00044841u+   芈月傳第1集　霸星芈月降世楚國u  楚威王二年，太史令唐昧夜觀星象，發現霸星即將現世。王后得知霸星的預言後，想盡辦法不讓孩子順利出生，幸得莒姬相護化解危機。沒想到眾人期待下出生的霸星卻是位公主，楚威王對此失望至極。楚王后命人將女嬰丟棄河中，居然奇蹟似的被少司命像攔下，楚威王認為此女非同凡響，為她取名芈月。)r   r   r   r   )r   r   r   r   c                sL    d }|d }|r&j d||f   fdd|d D }j|||S )Nr   	contentIdzEDownloading playlist %s - add --no-playlist to just download video %sc                s2   g | ]*}j tj d  |d f ddiqS )contentTyper   force_noplaylistT)
url_resultr   _URL_TEMPLATE).0episode)program_infoself EC:\Users\Broad\Desktop\All-Down\binaries\youtube_dl\extractor\litv.py
<listcomp>>   s   z,LiTVIE._extract_playlist.<locals>.<listcomp>r    )	to_screenplaylist_result)r"   season_listvideo_idr!   promptepisode_title
content_idZall_episodesr#   )r!   r"   r$   _extract_playlist6   s    zLiTVIE._extract_playlistc             C   s  t |i \}}| j|}| jjjd}d}d|kr>|d }d}| j||}| j| jd|ddd|}t|jd	i j	 }|r|s| j
|d
 |||dS |r| jd|  d|kr| jd|d|iddid}| j| jd|ddd|}	|	s$|d |d |d d}
| jd|tj|
jdddid}	|	jdsx|	jd}|dkrN| jd |rjtd | j|f dd!td"| j | j|	d |d#d$d%d&}x|D ]}d|jd'i d(< qW |d) |jd*d+ }|jd,}|jd-}d.d/ |jd0g D }t|jd1}|||||||d2S )3Nr   Tr   Fzvar\s+programInfo\s*=\s*([^;]+)zVOD dataz{})defaultZ
seasonListr   )r*   z2Downloading just video %s because of --no-playlistassetIdz+https://www.litv.tv/vod/ajax/getProgramInfor   Acceptzapplication/json)queryheadersz*uiHlsUrl\s*=\s*testBackendData\(([^;]+)\);z
video datawatchDevicesr   )r/   r3   r   z"https://www.litv.tv/vod/getMainUrlzutf-8zContent-Type)datar2   ZfullpatherrorMessagezvod.error.outsideregionerrorz&This video is available in Taiwan onlyz%s said: %s)expectedzUnexpected result from %sr   m3u8_nativehls)r   entry_protocolm3u8_idhttp_headerszYoutubedl-no-compressionr   ZsecondaryMark r   Z	imageFilec             S   s   g | ]}|d  qS )namer#   )r   itemr#   r#   r$   r%      s    z(LiTVIE._real_extract.<locals>.<listcomp>categoryr    )r   formatsr   r   r   
categoriesr   )r	   	_match_id_downloaderr   get_download_webpage_parse_json_search_regexlistvaluesr-   r&   _download_jsonjsondumpsencoderaise_geo_restrictedr   IE_NAME_extract_m3u8_formats
setdefaultr   )r"   r   r4   r)   r   Znoplaylist_promptwebpager!   r(   
video_datapayload	error_msgr@   a_formatr   r   r   rA   r    r#   r#   r$   _real_extractE   sv    









zLiTVIE._real_extractN)T)__name__
__module____qualname__
_VALID_URLr   _TESTSr-   rW   r#   r#   r#   r$   r
      s2   

r
   )
__future__r   rK   commonr   utilsr   r   r   r	   r
   r#   r#   r#   r$   <module>   s   