
    Ği$                     V    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
dS )    N   )InfoExtractor   )int_or_none
js_to_jsonparse_durationtraverse_objtry_geturljoinc                   F   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dKdDedEedFefdGZdLdDedEedFefdIZdJ ZdAS )M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 ]m}|                     d          }dt                                          |t          t	          |d                    |                     d          d| d| dV  nd S )N	contentIDr   )r"   totalSecondsr   https://z/embed/)_typeie_keyr   r"   r   r   )getr   r0   r   r	   )selfhostplaylist_contententry
content_ids        cC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/mainstreaming.py_playlist_entriesz!MainStreamingIE._playlist_entriesu   s      % 		 		E;//J)0022 'U<X(Y(YZZ7++;$;;z;;     		 		    c                 n    |                      d          sd|                      d          sdndz   | z   } | S )Nwebtools.-r   )
startswith)r3   s    r7   _get_webtools_hostz"MainStreamingIE._get_webtools_host   s@    z** 	QDOOC,@,@!HbIDPDr9   c                 Z    |                                   d|                     |           S )Nz//)http_schemer?   )r2   r3   s     r7   _get_webtools_base_urlz&MainStreamingIE._get_webtools_base_url   s0    ""$$GG(?(?(E(EGGGr9   NDownloading API JSONFr3   pathitem_idc                 <    |                      |d|z   ||||          S )Nz/api/v2/)_call_webtools_apir2   r3   rD   rE   querynotefatals          r7   	_call_apizMainStreamingIE._call_api   s'    &&tZ$->PTV[\\\r9   Downloading webtools API JSONc                 x    |                      t          |                     |          |          ||||          S )N)rI   rJ   rK   )_download_jsonr   rB   rH   s          r7   rG   z"MainStreamingIE._call_webtools_api   sG    ""D//55t<<gUY]ej # l l 	lr9   c                    |                      |                                          \  }}t          |                     |d| |d          d           }|s`|                     ||          }|                     |                     d|ddt          j                  |t          d	
          pi }|d         }|
                    d          p|}|
                    d          p|}|
                    d          }t          |ddt                    }d}	|
                    d          r|                     |           |
                    d          }
|
r|                     d|
            t          |
                    d                    }d }g }i }|dk    rt          |dt                     }d| d|d          d| d|rdnd }d }	|                     |d!| |d"          pi }|
                    d#          d	u r/|                     d$|
                    d%           d&'           d(}	n|d)k    r?|                     |                     ||
                    d*                    |||          S |d+k    r&d| d,| d}|                    |d-z  d.d/d0           n|                     d1|            |rj|                     |d2z  |d	3          \  }}|                     |d4z  |d	3          \  }}|                     ||          }|                    ||z              |||||	t3          |
                    d5                    |
                    d6          |t5          |                     |          d7| d8          d9	S ):Nzcontent/z!Downloading content info API JSON)rJ   c                     | d         S )NplayerContentInfo )xs    r7   <lambda>z/MainStreamingIE._real_extract.<locals>.<lambda>   s    lm  oB  mC r9   zconfig\s*=\s*({.+?})\s*;zmainstreaming player configz{})defaultflagsF)transform_sourcerK   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_idrK   zmanifest.mpdr"   r*   zimage/z/poster)	r   r   r   formatsr   r"   r*   	subtitlesr   )_match_valid_urlgroupsr
   rL   _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   rn   content_infowebpageplayer_configr   r   r   alternative_content_idcontent_typeformat_base_urlro   rp   dvr_enabled	heartbeatm3u8_formats	m3u8_subsmpd_formatsmpd_subss                        r7   _real_extractzMainStreamingIE._real_extract   s   ..s33::<<hNN+++X<_  a a cC  cCD D  	8,,S(;;G ,,""/:W 	 # 3 3 :U	 - D D J HJ	 
 )7L''/4##K00<H  ))"<1BDVfijjj L)) 	&OOH%%%!-!1!12H!I!I! 	^ \DZ \ \]]]"<#3#3M#B#BCC	2&|5UeijjjK A  A  A\.5Q  A  AT\  A  Akva~agag|~  A  AO#Kt-D(-D-DhUmnntrtI}}]++u44%%&_Y]]K\=]=]&_&_jn%ooo( R''&&t\-=-=>P-Q-QRRT\^cepr r r RAAAHAAAO NN?^#CT^klmmnnnn!!"H,"H"HIII 	7&*&N&N/1HE 'O 'S 'S#L)$($K$K.085 %L %R %R!K --iBBINN<+5666 &&&|'7'7
'C'CDD $$V,," !<!<T!B!BD^XD^D^D^__

 

 
	
r9   )NrC   F)NrM   F)__name__
__module____qualname__
_VALID_URL_EMBED_REGEXIE_DESCrx   _TESTS_WEBPAGE_TESTSr8   staticmethodr?   rB   rL   rG   r   rS   r9   r7   r   r      s       wJJzJJJKL$G ` 8%K
 
 <7
 & $ ` (
 
   ` $K
 
   o $1%K
 
   s !1%K
 
   [,$K
 
 #F+  ? 
 [  Z _RFj m -A* %	
 	
  N
 
 
   \
H H H] ]c ] ]s ] ] ] ]l ls l# l l l l l
J
 J
 J
 J
 J
r9   r   )rv   commonr   utilsr   r   r   r	   r
   r   r   rS   r9   r7   <module>r      s    				 ! ! ! ! ! !               O
 O
 O
 O
 O
m O
 O
 O
 O
 O
r9   