U
    g"                     @   s   d dl mZ ddlmZmZmZmZ G dd deZG dd deZG dd	 d	eZ	G d
d deZ
G dd deZG dd deZdS )   )InfoExtractor   )int_or_nonesmuggle_urltry_getunified_timestampc                   @   s   e Zd ZdZedddZdS )TeleQuebecBaseIEzAhttp://players.brightcove.net/%s/%s_default/index.html?videoId=%s6150020952001c                 C   s$   dt tj||| f ddgiddS )Nurl_transparentZgeo_countriesCABrightcoveNew)_typeurlie_key)r   r   BRIGHTCOVE_URL_TEMPLATE)Zbrightcove_idZ	player_id
account_id r   ?/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/telequebec.py_brightcove_result   s    z#TeleQuebecBaseIE._brightcove_resultN)r	   )__name__
__module____qualname__r   staticmethodr   r   r   r   r   r   
   s   r   c                
   @   sd   e Zd ZdZdddddddd	d
dgdddddddddddgdddddddgZdd ZdS )TeleQuebecIEz(?x)
                    https?://
                        (?:
                            zonevideo\.telequebec\.tv/media|
                            coucou\.telequebec\.tv/videos
                        )/(?P<id>\d+)
                    z[http://zonevideo.telequebec.tv/media/37578/un-petit-choc-et-puis-repart/un-chef-a-la-cabaneZ6155972771001mp4zUn petit choc et puis repart!z$md5:b04a7e6b3f74e32d7b294cffe8658374i8^r	   Z20200512)idexttitledescription	timestampuploader_idupload_dater   )r   	info_dictZadd_iezChttps://zonevideo.telequebec.tv/media/55267/le-soleil/passe-partoutZ6167180337001z	Le soleilz$md5:64289c922a8de2abbe99c354daffde02Z20200625i^)r   r   r   r   r    r!   r   z*http://zonevideo.telequebec.tv/media/30261Tr   Zonly_matchingzGhttps://coucou.telequebec.tv/videos/41788/idee-de-genie/l-heure-du-bainc                 C   s   |  |}| d| |d }tdd |d D }| |d}|dpLi }|dpZi }|t|d	d
 tt|dd
 |dt|d|dt|dd |S )Nz0https://mnmedias.api.telequebec.tv/api/v3/media/mediac                 s   s$   | ]}| d dkr|d V  qdS )sourceZ
BrightcovesourceIdN)get).0Zsource_infor   r   r   	<genexpr>E   s      z-TeleQuebecIE._real_extract.<locals>.<genexpr>ZstreamInfosZ	22gPKdt7fproductseasonc                 S   s   | d d d S )NZdescriptionstextr   xr   r   r   <lambda>J       z,TeleQuebecIE._real_extract.<locals>.<lambda>c                 S   s   | d d S )NZserietitrer   r.   r   r   r   r0   K   r1   nameZseasonNor2   Z	episodeNo)r   seriesr+   season_numberepisodeepisode_number)		_match_id_download_jsonnextr   r'   updater   strr   )selfr   media_idr$   Z	source_idinfor*   r+   r   r   r   _real_extract@   s(    
zTeleQuebecIE._real_extractNr   r   r   
_VALID_URL_TESTSr@   r   r   r   r   r      s>   			"r   c                   @   sB   e Zd ZdZdddddddd	d
ddddddidgZdd ZdS )TeleQuebecSquatIEz1https?://squat\.telequebec\.tv/videos/(?P<id>\d+)z'https://squat.telequebec.tv/videos/9314Z d59ae78112d542e793d83cc9d3a5b530r   ZPoupeflektaz$md5:2f0718f8d2f8fece1646ee25fb7bce75iG  i@]Z20190921z2Miraculous : Les Aventures de Ladybug et Chat NoirzSaison 3   9   )r   r   r   r   durationr   r!   r4   r+   r5   r7   skip_downloadTr   r"   paramsc                 C   s   |  |}| d| |}|d }dd| t ||d|dt|d|d|d	t|d
t|ddS )Nz*https://squat.api.telequebec.tv/v1/videos/r&   r
   %http://zonevideo.telequebec.tv/media/r2   r   ZdatePublication	containerZsaisonZnoSaisonr6   )r   r   r   r   r   r   r   r4   r+   r5   r7   )r8   r9   r   r   r'   r   r   )r=   r   video_idvideor>   r   r   r   r@   j   s$    
zTeleQuebecSquatIE._real_extractNrA   r   r   r   r   rD   T   s&    rD   c                	   @   sL   e Zd ZdZdddddddd	d
ddddddddddgZdd ZdS )TeleQuebecEmissionIEa	  (?x)
                    https?://
                        (?:
                            [^/]+\.telequebec\.tv/emissions/|
                            (?:www\.)?telequebec\.tv/
                        )
                        (?P<id>[^?#&]+)
                    zthttp://lindicemcsween.telequebec.tv/emissions/100430013/des-soins-esthetiques-a-377-d-interets-annuels-ca-vous-tenteZ6154476028001r   uG   Des soins esthétiques à 377 % d’intérêts annuels, ça vous tente?z$md5:cb4d378e073fae6cce1f87c00f84ae9fZ20200505iױ^r	   r   r   r   r   r!   r   r    r   r"   zVhttp://bancpublic.telequebec.tv/emissions/emission-49/31986/jeunes-meres-sous-pressionTr#   zHhttp://www.telequebec.tv/masha-et-michka/epi059masha-et-michka-3-053-078z7http://www.telequebec.tv/documentaire/bebes-sur-mesure/c                 C   s8   |  |}| ||}| d|d}| d| t S )NzmediaId\s*:\s*(?P<id>\d+)zmedia idrK   )r8   Z_download_webpageZ_search_regexZ
url_resultr   r   )r=   r   Z
display_idZwebpager>   r   r   r   r@      s    
  z"TeleQuebecEmissionIE._real_extractNrA   r   r   r   r   rO      s,   	rO   c                
   @   s:   e Zd ZdZdddddddd	d
dddidZdd ZdS )TeleQuebecLiveIEz3https?://zonevideo\.telequebec\.tv/(?P<id>endirect)z(http://zonevideo.telequebec.tv/endirect/6159095684001r   u@   re:^Télé-Québec [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$Tu!   Canal principal de Télé-Québecr	   i/^Z20200525)r   r   r   Zis_liver   r    r   r!   rH   rI   c                 C   s   |  ddS )NrS   Z	skCsmi2Uw)r   )r=   r   r   r   r   r@      s    zTeleQuebecLiveIE._real_extractN)r   r   r   rB   Z_TESTr@   r   r   r   r   rR      s     rR   c                	   @   sD   e Zd ZdZdddddddd	d
ddddgZdd Zdd ZdS )TeleQuebecVideoIEz;https?://video\.telequebec\.tv/player(?:-live)?/(?P<id>\d+)z/https://video.telequebec.tv/player/31110/streamZ6202570652001r   ua   Le coût du véhicule le plus vendu au Canada / Tous les frais liés à la procréation assistéez$md5:685a7e4c450ba777c60adb6e71e41526Z20201019i_6101674910001rP   rQ   z-https://video.telequebec.tv/player-live/28527Tr#   c                 C   s   | j d| |ddddd S )Nz@http://beacon.playback.api.brightcove.com/telequebec/api/assets/Zweb)Zdevice_layoutZdevice_type)querydata)r9   )r=   pathrM   r   r   r   	_call_api   s     zTeleQuebecVideoIE._call_apic              
   C   s   |  |}| ||d }| |d |d d d  |d }|d }t|dd	 pVd
}| |d|}||dp||d|dt|d|dt|dd |S )Nassetz	/streams/Zstreams    r   streamr   c                 S   s   | d d S )NZvideo_provider_detailsr   r   r.   r   r   r   r0      r1   z1TeleQuebecVideoIE._real_extract.<locals>.<lambda>rU   defaultlong_descriptionZshort_descriptionZseries_original_namer5   original_namer7   )r   r4   r5   r6   r7   )r8   rY   r   r   r;   r'   r   )r=   r   Zasset_idrZ   r\   Z
stream_urlr   r?   r   r   r   r@      s0    
  zTeleQuebecVideoIE._real_extractN)r   r   r   rB   rC   rY   r@   r   r   r   r   rT      s"   rT   N)commonr   utilsr   r   r   r   r   r   rD   rO   rR   rT   r   r   r   r   <module>   s   >.,