U
    g                     @   s@   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 )    N   )InfoExtractor   )extract_attributesint_or_nonemimetype2extparse_iso8601c                	   @   st   e Zd ZdZdddddddd	d
didddddddddddddddddddgZedd Zdd ZdS )MedialaanIEa7  (?x)
                    https?://
                        (?:
                            (?:embed\.)?mychannels.video/embed/|
                            embed\.mychannels\.video/(?:s(?:dk|cript)/)?production/|
                            (?:www\.)?(?:
                                (?:
                                    7sur7|
                                    demorgen|
                                    hln|
                                    joe|
                                    qmusic
                                )\.be|
                                (?:
                                    [abe]d|
                                    bndestem|
                                    destentor|
                                    gelderlander|
                                    pzc|
                                    tubantia|
                                    volkskrant
                                )\.nl
                            )/video/(?:[^/]+/)*[^/?&#]+~p
                        )
                        (?P<id>\d+)
                    zahttps://www.bndestem.nl/video/de-terugkeer-van-ally-de-aap-en-wie-vertrekt-er-nog-bij-nac~p193993Z193993mp4z<De terugkeer van Ally de Aap en wie vertrekt er nog bij NAC?i`Z20210126   )idexttitle	timestampZupload_datedurationZskip_downloadT)urlZ	info_dictparamszhttps://www.gelderlander.nl/video/kanalen/degelderlander~c320/series/snel-nieuws~s984/noodbevel-in-doetinchem-politie-stuurt-mensen-centrum-uit~p194093)r   Zonly_matchingzJhttps://embed.mychannels.video/sdk/production/193993?options=TFTFF_defaultz7https://embed.mychannels.video/script/production/193993z0https://embed.mychannels.video/production/193993z%https://mychannels.video/embed/193993z+https://embed.mychannels.video/embed/193993c                 C   s:   g }t d|D ]$}t|d}|r|d|  q|S )Nz-(<div[^>]+data-mychannels-type="video"[^>]*>)zdata-mychannels-idzhttps://mychannels.video/embed/)refindallr   getappend)clsr   ZwebpageentrieselementZmychannels_id r   >/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/medialaan.py_extract_embed_urlsH   s    zMedialaanIE._extract_embed_urlsc           	      C   s   |  |}| jd| |ddidd d }|d }g }|dpBg D ]X}|d	}|sXqDt|d
}|dkr|| j||ddddd qD|||d qD||||dt|ddt|dpd dS )Nz.https://embed.mychannels.video/sdk/production/optionsZUUUU_default)queryZproductionsr   r   sourcessrctypeZm3u8r
   Zm3u8_nativeZhlsF)Zm3u8_idfatal)r   r   Z	posterUrlZpublicationDate r   )r   r   formatsZ	thumbnailr   r   )	Z	_match_idZ_download_jsonr   r   extendZ_extract_m3u8_formatsr   r   r   )	selfr   Zproduction_id
productionr   r$   sourcer    r   r   r   r   _real_extractQ   sJ    
 
    

zMedialaanIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSclassmethodr   r)   r   r   r   r   r	      sF   	 !
r	   )	r   commonr   utilsr   r   r   r   r	   r   r   r   r   <module>   s   