
    V|h                     X    S SK Jr  SSKJrJrJrJrJr   " S S\5      r " S S\5      r	g)	   )InfoExtractor   )float_or_noneint_or_noneparse_iso8601str_or_nonetry_getc                   ,    \ rS rSrSrS/rSrSrS rSr	g)	NineCNineMediaIE   9c9mediaCAz09c9media:(?P<destination_code>[^:]+):(?P<id>\d+)zGhttp://capi.9c9media.com/destinations/%s/platforms/desktop/contents/%s/c                    U R                  U5      R                  5       u  p#U R                  X#4-  nU R                  XCSS0S9nUS   nUS   S   nUS   nUSU S	3-   n	U R                  XSS
0S9nU R	                  S5      (       d#  [        US 5      (       a  U R                  U5        U	S-   n
/ nUR                  U R                  U
S-   USSSSS95        UR                  U R                  U
S-   USSS95        UR                  U R                  U
S-   USSS95        / nUR                  S5      =(       d    /  Hb  nUR                  S5      nU(       d  M  UR                  U[        UR                  S5      5      [        UR                  S5      5      S.5        Md     / / nnSU4S U44 HJ  u  nnUR                  U/ 5       H.  nUR                  S5      nU(       d  M  UR                  U5        M0     ML     UR                  S!5      =(       d    0 nUUUR                  S"5      =(       d    UR                  S#5      [        UR                  S$5      5      [        UR                  S%5      5      UR                  S5      [        UR                  S&5      5      [        UR                  S5      5      [        US' 5      UU[!        UR                  S(5      5      UUS).nUR                  S*5      (       a  S+U
S,-   S,S-.U
S.-   S.S-./0US/'   U$ )0Nz$includez?[Media.Name,Season,ContentPackages.Duration,ContentPackages.Id])queryNameContentPackages    Idzcontentpackages//z[HasClosedCaptions]allow_unplayable_formatsc                     U S   S   S   $ )NConstraintsSecurityType xs    Y/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/ninecninemedia.py<lambda>0NineCNineMediaIE._real_extract.<locals>.<lambda>!   s    q7G
7STZ7[    z	manifest.m3u8mp4m3u8_nativehlsF)m3u8_idfatalf4mhds)f4m_idr'   mpddash)mpd_idr'   ImagesUrlWidthHeight)urlwidthheightTagsGenresSeasonDesc	ShortDescBroadcastDateTimeEpisodeNumberc                     U S   S   $ )NMediar   r   r   s    r   r   r    N   s    7F1Cr!   Duration)idtitledescription	timestampepisode_numberseasonseason_number	season_idseriestags
categoriesdurationformats
thumbnailsHasClosedCaptionsenvtt)r2   extsrt	subtitles)_match_valid_urlgroups_API_BASE_TEMPLATE_download_json	get_paramr	   
report_drmextend_extract_m3u8_formats_extract_f4m_formats_extract_mpd_formatsgetappendr   r   r   r   )selfr2   destination_code
content_idapi_base_urlcontentrA   content_package
package_idcontent_package_urlmanifest_base_urlrL   rM   image	image_urlrI   rJ   source_name	containeree_namerE   infos                          r   _real_extractNineCNineMediaIE._real_extract   sS   '+'<'<S'A'H'H'J$..2B1OO%%lYG
%  !"34Q7$T*
*/?
|1-MM--14 . 
 9::O-[\\OOJ'/+=t11&
E5 2 7 	8 	t00%z 1 ' 	( 	t00%z 1 ( 	) 
kk(+1r1E		%(I $UYYw%78%eii&9: 	 2 rj(.~*7M&N"K[[b1v  (	 2 'O X&," ";;v.J'++k2J&w{{3F'GH)'++i*@Ajj((H)=>$VZZ%56g'CD$%o&9&9*&EF$
" 233,u4  -u4 !D r!   r   N)
__name__
__module____qualname____firstlineno__IE_NAME_GEO_COUNTRIES
_VALID_URLrV   rp   __static_attributes__r   r!   r   r   r      s    GVNDJbPr!   r   c                   V    \ rS rSrSrS/rSrSSSSS	S
SSSSSSSS.SSS.S./rS rSr	g)CPTwentyFourIEd   cp24r   z0https?://(?:www\.)?cp24\.com/news/(?P<id>[^?#]+)zvhttps://www.cp24.com/news/video-shows-atm-being-ripped-out-of-business-by-pickup-truck-driver-in-mississauga-1.56768772328005r#   z/WATCH: Truck rips ATM from Mississauga businessz$md5:cf7498480885f080a754389a2b2f7073iazSeason 0r   57974zCTV News Torontog\(:@zhhttp://images2.9c9media.com/image_asset/2014_11_5_2eb609a0-475b-0132-fbd6-34b52f6f1279_jpg_2000x1125.jpg20211122)r@   rQ   rA   rB   rC   rE   rF   rG   rH   rK   	thumbnailupload_dateTbv)skip_downloadformat)r2   	info_dictparamsc                     U R                  U5      nU R                  X5      nU R                  SUSSS9u  pEU R                  SU SU 3[        U5      $ )Nz=getAuthStates\("(?P<id>[^"]+)",\s?"(?P<destination>[^"]+)"\);zvideo id and destination)r@   destination)groupz	9c9media::)	_match_id_download_webpage_search_regex
url_resultr   )r`   r2   
display_idwebpagevideo_idr   s         r   rp   CPTwentyFourIE._real_extract|   si    ^^C(
((9 $ 2 2L/7L !3 !N ;-q
CEUW_``r!   r   N)
rr   rs   rt   ru   rv   rw   rx   _TESTSrp   ry   r   r!   r   r{   r{   d   sa    GVNDJ HFA#  ( D%
 %)D9! F&ar!   r{   N)
commonr   utilsr   r   r   r   r	   r   r{   r   r!   r   <module>r      s/    ! V} Vra] ar!   