
    uki$                     N    d dl Z ddlmZ ddlmZmZmZmZmZm	Z	  G d de      Z
y)    N   )InfoExtractor   )int_or_none
js_to_jsonparse_durationtraverse_objtry_geturljoinc                   >   e Zd ZdZde dgZdZddddd	d
ddddgddddddddddedd
dddddddd d
d!dd"d#d$dd%d&d'd(d
d!dd)d#d$dd*d+ed,dd
ddd-d.id/d0d1d2d3d1d2d4d1d2g	Zd5d6d
d7d8d9d:d;d!d<d=gZd> Z	e
d?        Zd@ ZdHdBedCedDefdEZdIdBedCedDefdFZdG ZyA)JMainStreamingIEzchttps?://(?: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           
   #      K   |D ]X  }|j                  d      }dt        j                         |t        t	        |d            |j                  d      d| d| d Z y w)N	contentIDr   )r"   totalSecondsr   https://z/embed/)_typeie_keyr   r"   r   r   )getr   r0   r   r	   )selfhostplaylist_contententry
content_ids        Y/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/yt_dlp/extractor/mainstreaming.py_playlist_entriesz!MainStreamingIE._playlist_entriesu   sk     % 		E;/J)002 'U<X(YZ7+!$wzl; 		s   AA!c                 ^    | j                  d      sd| j                  d      sdndz   | z   } | S )Nwebtools.-r   )
startswith)r3   s    r7   _get_webtools_hostz"MainStreamingIE._get_webtools_host   s/    z*DOOC,@bIDPD    c                 J    | j                          d| j                  |       S )Nz//)http_schemer>   )r2   r3   s     r7   _get_webtools_base_urlz&MainStreamingIE._get_webtools_base_url   s)    ""$%R(?(?(E'FGGr?   Nr3   pathitem_idc                 4    | j                  |d|z   ||||      S )Nz/api/v2/)_call_webtools_apir2   r3   rC   rD   querynotefatals          r7   	_call_apizMainStreamingIE._call_api   s$    &&tZ$->PTV[\\r?   c                 `    | j                  t        | j                  |      |      ||||      S )N)rH   rI   rJ   )_download_jsonr   rB   rG   s          r7   rF   z"MainStreamingIE._call_webtools_api   s;    ""D//5t<gUY]ej # l 	lr?   c                    | j                  |      j                         \  }}t        | j                  |d| |d      d       }|sV| j	                  ||      }| j                  | j                  d|ddt        j                        |t        d	
      xs i }|d   }|j                  d      xs |}|j                  d      xs |}|j                  d      }t        |ddt              }d}	|j                  d      r| j                  |       |j                  d      }
|
r| j                  d|
        t        |j                  d            }d }g }i }|dk(  rt        |dt               }d| d|d    d| d|rdnd }d }	| j                  |d!| |d"      xs i }|j                  d#      d	u r| j#                  d$|j                  d%       d&'       d(}	ns|d)k(  r3| j%                  | j'                  ||j                  d*            |||      S |d+k(  r"d| d,| d}|j)                  |d-z  d.d/d0       n| j#                  d1|        |rZ| j+                  |d2z  |d	3      \  }}| j-                  |d4z  |d	3      \  }}| j/                  ||      }|j1                  ||z          |||||	t3        |j                  d5            |j                  d6      |t5        | j7                  |      d7| d8      d9	S ):Nzcontent/z!Downloading content info API JSON)rI   c                     | d   S )NplayerContentInfo )xs    r7   <lambda>z/MainStreamingIE._real_extract.<locals>.<lambda>   s    lm  oB  mC r?   zconfig\s*=\s*({.+?})\s*;zmainstreaming player configz{})defaultflagsF)transform_sourcerJ   contentInfor3   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_idrJ   zmanifest.mpdr"   r*   zimage/z/poster)	r   r   r   formatsr   r"   r*   	subtitlesr   )_match_valid_urlgroupsr
   rK   _download_webpage_parse_json_search_regexreDOTALLr   r1   r	   str
report_drmreport_warningr   boolraise_no_formatsplaylist_resultr8   append#_extract_m3u8_formats_and_subtitles"_extract_mpd_formats_and_subtitles_merge_subtitlesextendr   r   rB   )r2   r   r3   rl   content_infowebpageplayer_configr   r   r   alternative_content_idcontent_typeformat_base_urlrm   rn   dvr_enabled	heartbeatm3u8_formats	m3u8_subsmpd_formatsmpd_subss                        r7   _real_extractzMainStreamingIE._real_extract   s   ..s3::<h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\^cep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^_

 
	
r?   )NzDownloading API JSONF)NzDownloading webtools API JSONF)__name__
__module____qualname__
_VALID_URL_EMBED_REGEXIE_DESCrv   _TESTS_WEBPAGE_TESTSr8   staticmethodr>   rB   rK   rF   r   rQ   r?   r7   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
r?   r   )rt   commonr   utilsr   r   r   r	   r
   r   r   rQ   r?   r7   <module>r      s#    	 ! O
m O
r?   