U
    gU                     @   sH   d dl mZ ddlmZmZmZmZmZ ddlm	Z	 G dd deZ
dS )   )InfoExtractor   )determine_extint_or_noneparse_durationparse_iso8601url_or_none)traverse_objc                   @   s   e Zd ZdZdZdgZdddddd	d
dddddddddddddddddddddddd d!dd"d#d$dd%d&d'd(d)d*d+d,dd-d d.dgZd/d0 Zd1d2 Zd3S )4KikaIEzKiKA.dez=https?://(?:www\.)?kika\.de/[\w/-]+/videos/(?P<id>[a-z-]+\d+)ZDEzdhttps://www.kika.de/logo/videos/logo-vom-samstag-einunddreissig-august-zweitausendvierundzwanzig-100Z fbfc8da483719ef06f396e5e5b938c69zDlogo-vom-samstag-einunddreissig-august-zweitausendvierundzwanzig-100mp4Z20240831iWfi  zEpisode 476i  zSeason 2024iz  z"logo! vom Samstag, 31. August 2024idf)idextupload_date	timestampseason_numbermodified_dateepisodeepisode_numberseasondurationtitlemodified_timestamp)urlmd5Z	info_dictz/https://www.kika.de/kaltstart/videos/video92498Z 710ece827e5055094afeb474beacb7aaZ
video92498z7. Wo ist Leo?z$md5:fb48396a5b75068bcac1df74f1524920i  ieZ20231218   Z20240319ibez	Episode 7r   zSeason 1)r   r   r   descriptionr   r   r   r   r   r   r   r   r   z>https://www.kika.de/bernd-das-brot/astrobrot/videos/video90088Z ffd1b700d7de0a6616a1d08544c77294Z
video90088Z20221102it\bc   i8e   z*Es ist nicht leicht, ein Astrobrot zu seinZ20240322z$md5:d3641deaf1b5515a160788b2be4159a9z	Episode 8)r   r   r   r   r   r   r   r   r   r   r   r   r   c                 C   s   |  |}| d| |}| |d d |}i }t|d }rV|ddg|d< t|d }r|dg |d	d |t| |||d
t|dt	hfdt	hfdt
hfdt
hfdthfdthfftfdthfdthfdS )Nz.https://www.kika.de/_next-api/proxy/v1/videos/assetsr   ZvideoSubtitleZttml)r   r   deZ	webvttUrlZvtt)r   formats	subtitlesr   r   dateZmodificationDateZdurationInSecondsr   ZepisodeNumberr   )r   r   r   r   r   r   r   )Z	_match_idZ_download_jsonr   get
setdefaultappendlist_extract_formatsr	   strr   r   r   any)selfr   video_iddocZvideo_assetsr!   Zttml_resourceZwebvtt_resource r-   9/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/kika.py_real_extractH   s>    
zKikaIE._real_extractc                 c   s   t |ddd fD ]}|d }t|}|dkrJ| j||dddd	E d H  q||d
t |dthfdthfdthdd hfdthdd hfdthdd hfdV  qd S )Nr   c                 S   s   t |d S )Nr   )r   )_vr-   r-   r.   <lambda>l       z)KikaIE._extract_formats.<locals>.<lambda>r   Zm3u8r   ZhlsF)Zm3u8_idfatal)r   Z	format_idZ
frameWidthZframeHeightZfileSizec                 S   s   | pd S )Nr-   xr-   r-   r.   r2   z   r3   ZbitrateAudioc                 S   s   | dkrd S | S Nr-   r5   r-   r-   r.   r2   {   r3   ZbitrateVideoc                 S   s   | dkrd S | S r7   r-   r5   r-   r-   r.   r2   |   r3   )widthheightfilesizeZabrZvbr)r	   r   Z_extract_m3u8_formatsr   )r*   Z
media_infor+   ZmediaZ
stream_urlr   r-   r-   r.   r'   k   s,        zKikaIE._extract_formatsN)	__name__
__module____qualname__ZIE_DESCZ
_VALID_URLZ_GEO_COUNTRIESZ_TESTSr/   r'   r-   r-   r-   r.   r
      sp   7#r
   N)commonr   utilsr   r   r   r   r   Zutils.traversalr	   r
   r-   r-   r-   r.   <module>   s   