U
    g                     @   sT   d dl Z d dlZddlmZ ddlmZmZmZmZ ddl	m
Z
 G dd deZdS )	    N   )InfoExtractor   )int_or_nonejoin_nonemptymimetype2exturl_or_none)traverse_objc                   @   s&  e Zd 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gZdde dZddddd d!d"d#d$d%d&d'd(gd)d*d+	d,did-d.d/d0d"d1d2d3d&d4d5d6d7gd8d*d+	d,did-d9d:d;d"d1d<d3d=d4d5d6d7gd>d*d+	d,did-d?ddd@dddAdddBdddCdddDdddEddgZdFdG ZdHdI ZdJS )K	VidflexIEz[^.]+\.vidflex\.tvz(?:www\.)?acactv\.caz (?:www\.)?albertalacrossetv\.comz(?:www\.)?cjfltv\.comz"(?:www\.)?figureitoutbaseball\.comz(?:www\.)?ocaalive\.comz(?:www\.)?pegasussports\.tvz(?:www\.)?praxisseries\.caz(?:www\.)?silenticetv\.comz(?:www\.)?tuffhedemantv\.comz(?:www\.)?watchfuntv\.comzlive\.ofsaa\.on\.caztv\.procoro\.caztv\.realcastmedia\.netztv\.fringetheatre\.cazvideo\.haisla\.cazvideo\.hockeycanada\.cazvideo\.huuayaht\.orgzvideo\.turningpointensemble\.cazvideos\.livingworks\.netz'videos\.telusworldofscienceedmonton\.cazwatch\.binghamtonbulldogs\.comzwatch\.rekindle\.tvzwatch\.wpca\.comzhttps?://(?:|z.)/[a-z]{2}(?:-[a-z]{2})?/c/[\w-]+\.(?P<id>\d+)zLhttps://video.hockeycanada.ca/en/c/nwt-micd-up-with-jamie-lee-rattray.107486T)urlZonly_matchingzOhttps://video.hockeycanada.ca/en-us/c/nwt-micd-up-with-jamie-lee-rattray.107486Z107486u&   NWT: Mic’d up with Jamie Lee Rattraymp4s   i	iaZ20211015ZEnglishZ2021zNational Women's Teamz$md5:efb1cf6165b48cc3f5555c4262dd5b23z@re:^https?://wpmedia01-a\.akamaihd\.net/en/asset/public/image/.+)	idtitleextduration	timestampZupload_datetagsdescriptionZ	thumbnailZskip_download)r   Z	info_dictparamszOhttps://video.hockeycanada.ca/en/c/mwc-remembering-the-wild-ride-in-riga.112307Z112307z&MWC: Remembering the wild ride in RigaiB  iWKfZ20240520Z2024zNational Men's TeamzIIHF World ChampionshipZFanu'   re:.+Canada’s National Men’s Team.+zThttps://video.hockeycanada.ca/fr/c/cmm-retour-sur-un-parcours-endiable-a-riga.112304Z112304u.   CMM : Retour sur un parcours endiablé à RigaiKfZFrenchz$md5:cf825222882a3dab1cd62cffcf3b4d1fz9https://myfbcgreenville.vidflex.tv/en/c/may-12th-2024.658zrhttps://www.figureitoutbaseball.com/en/c/fiob-podcast-14-dan-bertolini-ncaa-d1-head-coach-recorded-11-29-2018.1367zUhttps://videos.telusworldofscienceedmonton.ca/en/c/the-aurora-project-timelapse-4.577zQhttps://www.tuffhedemantv.com/en/c/2022-tuff-hedeman-tour-hobbs-nm-january-22.227zJhttps://www.albertalacrossetv.com/en/c/up-floor-ground-balls-one-more.3449zShttps://www.silenticetv.com/en/c/jp-unlocked-day-in-the-life-of-langley-ha-15u.5197zOhttps://jphl.vidflex.tv/en/c/jp-unlocked-day-in-the-life-of-langley-ha-15u.5197c                 C   s   |  |}| ||}| jd|ddd}t| ||dtjhtjht	j
hthf}|t| ||d| |ddd	d|S )
Nz6content_api:\s*(["\'])(?P<url>https?://(?:(?!\1).)+)\1zcontent api urlr   )groupconfig)r   formatsz/*<![CDATA[*/ z/*]]>*/)Z	_match_idZ_download_webpageZ_html_search_regexr	   Z_download_jsonbase64	b64decodebytesdecodejsonloadsdictlist_yield_formatsZ_search_json_ldreplace)selfr   video_idZwebpageZdata_urlmedia_config r(   </tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/vidflex.py_real_extractp   s(    
   
 zVidflexIE._real_extractc                 c   s   t |dddd fD ]~}|d }t|d}|dkrP| j||dd	d
E d H  q|dkr| jd|dd d}td||dt|dV  q||dV  qd S )NZmediasourcec                 S   s   t |d S )Nsrc)r   )_vr(   r(   r)   <lambda>       z*VidflexIE._yield_formats.<locals>.<lambda>r,   typeZm3u8FZhls)fatalZm3u8_idr   z_(\d+)k\.mp4bitrate)defaulthttp)Z	format_idr   r   Ztbr)r   r   )r	   r   getZ_extract_m3u8_formatsZ_search_regexr   r   )r%   r'   r&   Zmedia_sourceZ	media_url
media_typer3   r(   r(   r)   r#      s    
zVidflexIE._yield_formatsN)	__name__
__module____qualname__Z_DOMAINS_REjoinZ
_VALID_URLZ_TESTSr*   r#   r(   r(   r(   r)   r
      s   Fr
   )r   r   commonr   utilsr   r   r   r   Zutils.traversalr	   r
   r(   r(   r(   r)   <module>   s
   