
    V|h$                     N    S SK r SSKJr  SSKJrJrJrJrJrJ	r	   " S S\5      r
g)    N   )InfoExtractor   )int_or_none
js_to_jsonparse_durationtraverse_objtry_geturljoinc                   N   \ rS rSrSrS\ S3/rSrSSSS	S
SSS.SS/SS.SSSS.SS.SS\SSSS.SS.SSS S!SS"SS#S$.S%S.S&S'S(S)SS"SS*S$.S%S.S+S,\S-SSSS.S.S/0S0.S1S2S3.S4S2S3.S5S2S3./	rS6S7SS8S9S:S;S<S"S=.S>./r	S? r
\S@ 5       rSA rSJSC\SD\SE\4SF jjrSKSC\SD\SE\4SG jjrSH rSIrgB)LMainStreamingIE   zchttps?://(?:webtools-?)?(?P<host>[A-Za-z0-9-]*\.msvdn\.net)/(?:embed|amp_embed|content)/(?P<id>\w+)z<iframe[^>]+?src=["\']?(?P<url>z)["\']?zMainStreaming PlayerzNhttps://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/53EN6GxbWaJC53EN6GxbWaJCz!Diretta homepage 2021-12-31 12:00 was_livemp4z/re:https?://[\w-]+\.msvdn\.net/image/\w+/poster)idtitledescriptionlive_statusext	thumbnailz-Ignoring alternative content ID: WDAF1KOWUpH3z)MainStreaming said: Live event is OFFLINEzlive stream offline)url	info_dictexpected_warningsskipzNhttps://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/WDAF1KOWUpH3WDAF1KOWUpH3zPlaylist homepage)r   r   r   )r   r   playlist_mincountzNhttps://webtools-859c1818ed614cc5b0047439470927b0.msvdn.net/embed/tDoFkZD3T1LwtDoFkZD3T1Lwis_live)r   r   r   r   r   zlive stream)r   r   r   z]https://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/EUlZfGWkGpOd?autoPlay=falseEUlZfGWkGpOdzLa Settimana z03 Ottobre ore 02:00not_livei  )r   r   r   r   r   r   durationzInvalid URLzahttps://f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/MfuWmzL2lGkA?autoplay=false&T=1635860445MfuWmzL2lGkAz
TG Mattinaz06 Ottobre ore 08:00gQ@zIhttps://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/HVvPMzyHVvPMzyzcanale all newsskip_downloadm3u8)r   r   paramsz-https://webtools.msvdn.net/embed/MfuWmzL2lGkAT)r   only_matchingzIhttps://859c1818ed614cc5b0047439470927b0.msvdn.net/amp_embed/tDoFkZD3T1LwzHhttps://859c1818ed614cc5b0047439470927b0.msvdn.net/content/tDoFkZD3T1Lw#z[https://www.lacplay.it/video/in-evidenza_728/lac-storie-p-250-i-santi-pietro-e-paolo_77297/u7kiX5DUaHYrzI Santi Pietro e Paoloz$md5:ff6be24916ba6b9ae990bf5f3df4911eg     @zre:https?://.+z
06/07/2025)r   r   r   r   r#   r   tagsr   )r   r   c           
   #      #    U HY  nUR                  S5      nS[        R                  5       U[        [	        US5      5      UR                  S5      SU SU 3S.v   M[     g 7f)N	contentIDr   )r#   totalSecondsr   https://z/embed/)_typeie_keyr   r#   r   r   )getr   r1   r   r	   )selfhostplaylist_contententry
content_ids        X/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/mainstreaming.py_playlist_entries!MainStreamingIE._playlist_entriesu   se     %E;/J)002 'U<X(YZ7+!$wzl;  &s   A!A#c                 r    U R                  S5      (       d   SU R                  S5      (       d  SOS-   U -   n U $ )Nwebtools.-r   )
startswith)r4   s    r8   _get_webtools_host"MainStreamingIE._get_webtools_host   s5    z**DOOC,@,@bIDPD    c                 J    U R                  5        SU R                  U5       3$ )Nz//)http_schemer@   )r3   r4   s     r8   _get_webtools_base_url&MainStreamingIE._get_webtools_base_url   s)    ""$%R(?(?(E'FGGrB   Nr4   pathitem_idc                 0    U R                  USU-   X4XV5      $ )Nz/api/v2/)_call_webtools_apir3   r4   rG   rH   querynotefatals          r8   	_call_apiMainStreamingIE._call_api   s    &&tZ$->PT\\rB   c                 V    U R                  [        U R                  U5      U5      X4XVS9$ )N)rL   rM   rN   )_download_jsonr   rE   rK   s          r8   rJ   "MainStreamingIE._call_webtools_api   s6    ""D//5t<gY] # l 	lrB   c                    U R                  U5      R                  5       u  p#[        U R                  USU 3USS9S 5      nU(       dT  U R	                  X5      nU R                  U R                  SUSS[        R                  S9U[        S	S
9=(       d    0 nUS   nUR                  S5      =(       d    UnUR                  S5      =(       d    UnUR                  S5      n[        USS[        S9nSn	UR                  S5      (       a  U R                  U5        UR                  S5      n
U
(       a  U R                  SU
 35        [        UR                  S5      5      nS n/ n0 nUS:X  a  [        US[         S9nSU SUS    SU SU(       a  SOS 3nS n	U R                  US!U 3US"S9=(       d    0 nUR                  S#5      S	L a$  U R#                  S$UR                  S%5       3S&S'9  S(n	OsUS):X  a1  U R%                  U R'                  X$R                  S*5      5      X7U5      $ US+:X  a"  SU S,U S3nUR)                  US--  S.S/S0.5        OU R#                  S1U 35        U(       aT  U R+                  US2-  US	S39u  nnU R-                  US4-  US	S39u  nnU R/                  UU5      nUR1                  UU-   5        UUUUU	[3        UR                  S55      5      UR                  S65      U[5        U R7                  U5      S7U S835      S9.	$ ):Nzcontent/z!Downloading content info API JSON)rM   c                     U S   $ )NplayerContentInfo )xs    r8   <lambda>/MainStreamingIE._real_extract.<locals>.<lambda>   s    lm  oB  mCrB   zconfig\s*=\s*({.+?})\s*;zmainstreaming player configz{})defaultflagsF)transform_sourcerN   contentInfor4   r-   r   longDescriptionshortDescription)expected_typer"   
drmEnabledalternativeContentIDz!Ignoring alternative content ID: contentType   )playerSettings
dvrEnabledr/   z/live/liveSourceID/z/%sz?DVRr   r    z
heartbeat/zChecking stream statusheartBeatUpzMainStreaming said: responseMessageT)expectedr      playlistContents
   z/vod/zoriginal.mp4originalr   )r   format_notequalityzUnknown content type zplaylist.m3u8)video_idrN   zmanifest.mpdr#   r+   zimage/z/poster)	r   r   r   formatsr   r#   r+   	subtitlesr   )_match_valid_urlgroupsr
   rO   _download_webpage_parse_json_search_regexreDOTALLr   r2   r	   str
report_drmreport_warningr   boolraise_no_formatsplaylist_resultr9   append#_extract_m3u8_formats_and_subtitles"_extract_mpd_formats_and_subtitles_merge_subtitlesextendr   r   rE   )r3   r   r4   rs   content_infowebpageplayer_configr   r   r   alternative_content_idcontent_typeformat_base_urlrt   ru   dvr_enabled	heartbeatm3u8_formats	m3u8_subsmpd_formatsmpd_subss                        r8   _real_extractMainStreamingIE._real_extract   s   ..s3::<NN
+X<_  a cCD ,,S;G ,,""/:W 		 # 3 :U	 - D J HJ	 
 )7L'/4##K0<H  )"<1BDVfij L))OOH%!-!1!12H!I!"CDZC[ \]"<#3#3M#BC	2&|5UeijK (f\.5Q4RRST\S]]`kvag|~`  AO#Ktz(-DhUmntrtI}}]+u4%%(<Y]]K\=]<^&_jn%o( R''&&t-=-=>P-QRT\epr r R (eH:SAO NN?^#CT^klmn!!$9,"HI&*&N&N/1HE 'O 'S#L)$($K$K.085 %L %R!K --iBINN<+56 &&&|'7'7
'CD $$V," !<!<T!BfXJV]D^_

 
	
rB   rW   )NzDownloading API JSONF)NzDownloading webtools API JSONF)__name__
__module____qualname____firstlineno__
_VALID_URL_EMBED_REGEXIE_DESCr}   _TESTS_WEBPAGE_TESTSr9   staticmethodr@   rE   rO   rJ   r   __static_attributes__rW   rB   r8   r   r      s   wJ6zl'JKL$G ` 8%K
 <7
 &$ ` (
  ` $K
  o $1%K
  s !1%K
  [,$K
 #F+ ?
 [ Z_RFj m -A* %	
 N
  
H]c ] ]s ]ls l# l l
J
rB   r   )r{   commonr   utilsr   r   r   r	   r
   r   r   rW   rB   r8   <module>r      s#    	 ! O
m O
rB   