o
    i                     @   s<   d dl mZ ddlmZmZmZmZmZ G dd deZdS )   )InfoExtractor   )float_or_noneint_or_nonesmuggle_urlstr_or_nonetry_getc                
   @   sR   e Zd ZdZdZddddddd	d
dddddddgZdZdddZdd ZdS )STVPlayerIEz
stv:playerzDhttps?://player\.stv\.tv/(?P<type>episode|video)/(?P<id>[a-z0-9]{4})zOhttps://player.stv.tv/video/4gwd/emmerdale/60-seconds-on-set-with-laura-norton/ 5adf9439c31d554f8be0707c7abe7e0a5333973339001mp420170301z#60 seconds on set with Laura NortonzXHow many questions can Laura - a.k.a Kerry Wyatt - answer in 60 seconds? Let's find out!iX
1486976045)idextupload_datetitledescription	timestampuploader_idz.this resource is unavailable outside of the UK)urlmd5	info_dictskipz@https://player.stv.tv/episode/4125/jennifer-saunders-memory-laneT)r   only_matchingzNhttp://players.brightcove.net/1486976045/default_default/index.html?videoId=%sepisodes	shortform)episodevideoc              
   C   s  |  | \}}| j||ddpd}| j||i ddpi }t|dd p(i }d i }}| D ]\}	}
|	drB|	|
}} nq2tt|d	d }d
| j	|  d
|pV| }|d}|sl| 
d| |}|d }|d }t|d }i }|dp~i }| D ]\}}|dg |dkrdn||d q|dpi }|dr| | d|t| j| ddgi|dt|dd|t|d|dp|ddd 	S )!NF)fatal )defaultpropsc                 S      | d d S )NinitialReduxStateplayerApiCache xr&   r&   H/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/stv.py<lambda>-       z+STVPlayerIE._real_extract.<locals>.<lambda>)z
/episodes/z/shortform/c                 S   r#   )N	pageProps	episodeIdr&   r'   r&   r&   r)   r*   6   r+   /resultszhttps://player.api.stv.tv/v1r   r   
_subtitlesenwebvttvtt)r   r   	programme
drmEnabledurl_transparentgeo_countriesGBsummarylengthi  viewsname	shortNameBrightcoveNew)	_typer   r   r   duration	subtitles
view_countseriesie_key)_match_valid_urlgroups_download_webpage_search_nextjs_datagetr   items
startswithr   
_PTYPE_MAP_download_jsonstr
setdefaultappend
report_drmr   BRIGHTCOVE_URL_TEMPLATEr   r   )selfr   ptypevideo_idwebpager"   player_api_cacheapi_pathrespkv
episode_idresultr   rA   r0   r   sub_urlr4   r&   r&   r)   _real_extract'   s\   






zSTVPlayerIE._real_extractN)	__name__
__module____qualname__IE_NAME
_VALID_URL_TESTSrR   rL   r_   r&   r&   r&   r)   r	      s0    	r	   N)	commonr   utilsr   r   r   r   r   r	   r&   r&   r&   r)   <module>   s    	