
    VGh                     j    d dl Z d dlZd dlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZ  G d d	e      Zy)
    N   )InfoExtractor)NineCNineMediaIE   )extract_attributes
orderedSet)find_elementtraverse_objc                      e Zd ZdZdZdZe de e de e de e de de d	e gZd
dddddddg ddg dddddddddddddd dg dg d!d"d#d$d%dd&d'd(id)d*d+d'd,id-d*d.d'd/id0d*d1d2d3dd4d5d6d7d8g g d9d:d;d<d=d>dd?d@dAdg dBddCd;dDdEdFdGdg dHdIddJdKi d'dLdMddNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d"d]d^d_d;d`g dag dbdWdcddddedfdgdhdfdgdidfdggZdj Zdk Z	yl)m	CTVNewsIEz!https?://(?:[^.]+\.)?ctvnews\.ca/z(?P<id>\d{5,})z(?P<id>\d\.\d{5,})zvideo/czvideo(?:-gallery)?/?\?clipId=zvideo/?\?(?:playlist|bin)Id=z(?!video/)[^?#]*?z/?(?:$|[?#])z(?!video/)[^?#]+\?binId=z)http://www.ctvnews.ca/video?clipId=901995 b608f466c7fa24b9666c6439d766ab7e901995flvz1Extended: 'That person cannot be me' Johnson saysz$md5:958dd3b4f5bbbf0ed4d045c790d89285iuW20160630r   zSeason 0z'CTV News National | Archive | Stories 257981zre:https?://.*\.jpg$g5^I@)idexttitledescription	timestampupload_date
categoriesseason_numberseasontagsseries	season_id	thumbnailduration)urlmd5	info_dictz\https://barrie.ctvnews.ca/video/c3030933-here_s-what_s-making-news-for-nov--15?binId=1272429 8b8c2b33c5c1803e3c26bc74ff8694d53030933u)   Here’s what’s making news for Nov. 15uJ   Here are the top stories we’re working on for CTV News at 11 for Nov. 15zhhttp://images2.9c9media.com/image_asset/2021_2_22_a602e68e-1514-410e-a67a-e1f7cccbacab_png_2000x1125.jpg58104zCTV News Barrie20241116gbX9xE@i7g)r   r   r   r   r   r   r   r   r   r   r   r   r   r   z0http://www.ctvnews.ca/video?playlistId=1.2966224r   z	1.2966224   )r    r"   playlist_mincountz+http://www.ctvnews.ca/video?binId=1.2876780z	1.2876780d   zlhttps://www.ctvnews.ca/it-s-been-23-years-since-toronto-called-in-the-army-after-a-major-snowstorm-1.5736957z	1.5736957   z~https://www.ctvnews.ca/business/respondents-to-bank-of-canada-questionnaire-largely-oppose-creating-a-digital-loonie-1.6665797 24bc4b88cdc17d8c3fc01dfc228ab72c269502689852zFrom CTV News Channelz$md5:796a985a23cacc7e1e2fafefd94afd0a2023z1Bank of Canada asks public about digital currency20230526i  zhhttp://images2.9c9media.com/image_asset/2019_3_28_35f5afc3-10f6-4d92-b194-8b9a86f55c6a_png_1920x1080.jpgipdgV-o@)r   r   r   r   r   r   r   r   r   r   r   r   r   r   z3https://stox.ctvnews.ca/video-gallery?clipId=582589 135cc592df607d29dddc931f1b756ae2582589iUgc_@zCTV News Stoxz=CTV original footage of the rise and fall of the Berlin Wall.zBerlin Wall6381720150401)r   r   r   r   r   r   r   r   r   r   r   r   r   r   zdhttps://ottawa.ctvnews.ca/features/regional-contact/regional-contact-archive?binId=1.1164587#3023759 a14c0603557decc6531260791c23cc5e3023759r   r   i  r   i#9gr   2024episodezEpisode 125r   zCTV News Ottawa at Sixr   gx&0@episode_number}   r   r   z6CTV News Ottawa at Six for Saturday, November 16, 2024r   r   r   r   r   92667zhttp://www.ctvnews.ca/1.810401T)r    only_matchingz[http://www.ctvnews.ca/canadiens-send-p-k-subban-to-nashville-in-blockbuster-trade-1.2967231z5http://vancouverisland.ctvnews.ca/video?clipId=761241c                 6    | j                  d| t        |      S )Nz9c9media:ctvnews_web:)
url_resultr   )selfclip_ids     a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/ctvnews.py_ninecninemedia_url_resultz$CTVNewsIE._ninecninemedia_url_result   s    !6wi@BRT[\\    c           
      |   | j                  |      }t        j                  | j                  t        j
                  j                  |      j                        x}r|j                  d      }t        j                  | j                  |      r| j                  |      S | j                  d| |ddd      }t        t        j                  d|            D cg c]  }| j                  |       }}|s| j                  ||      }d|v r?| j                  d	|d
      j                  d      D cg c]  }| j                  |       }}nTt        |t!        dd      ht"        hdt$        j&                  hddt(        hf      D cg c]  }| j                  |       }}| j+                  ||      S c c}w c c}w c c}w )Nr   zhttps://www.ctvnews.ca/zexample.AjaxPageLayout.oti@B )otmaxItemsPerPage)queryzclip\.id\s*=\s*(\d+);zgetAuthStates("zgetAuthStates\("([\d+,]+)"zclip ids,zjasper-player-containerT)taghtmlzaxis-ids.axisId)	_match_idre	fullmatch_VIDEO_ID_REurllibparseurlparsefragmentgrouprA   _download_webpager   findall_search_regexsplitr
   r	   r   jsonloadsstrplaylist_result)r>   r    page_idmobjwebpager?   entriess          r@   _real_extractzCTVNewsIE._real_extract   s   ..%<< 1 16<<3H3H3M3V3VWW4Wjj&G<<))73227;;((+B7))Lg-&^
( 
 #-RZZ8PRY-Z"[] 227; ] ],,S':G G+--.KWV`agghkln4::7C n n
 !%*C$OP+,j4::,XX[W\+^ _AHD33G<  ##GW55]
ns   F/.F4F9N)
__name__
__module____qualname___BASE_REGEXrN   _PLAYLIST_ID_RE
_VALID_URL_TESTSrA   r`    rB   r@   r   r      s   6K$L+O=~.=5l^D=4_4EF=)/):,G=00ABJ ;1JA#% ? 0
( n1@g D  '%#
( B +	
   = +	
 ! ~ +	
  P1 -AH%! D#
( E1# D%Z"  %
( v1
)
5
 T
 	

 f
 }
 3
 
 c
 :
 M
   D
 "
 B
 .
  !
, 0 m GyFB]6rB   r   )rX   rL   urllib.parserO   commonr   ninecninemediar   utilsr   r   utils.traversalr	   r
   r   rh   rB   r@   <module>rn      s(     	  ! , 2 8k6 k6rB   