
    Ği                        d dl Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ  G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z!dS )    N   )InfoExtractor   )HEADRequest)ExtractorErrorGeoRestrictedError
clean_htmldetermine_extfilter_dictint_or_nonejoin_nonemptyparse_durationremove_startstrip_or_nonetraverse_objtry_getunified_strdateunified_timestampupdate_url_queryurljoin
xpath_textc                   \    e Zd ZdZdgZdZd Zd
dZd Ze	d             Z
e	d             Zd	S )	RaiBaseIEz7[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}ITFc                 l   |                      ||ddd          }|D ]}|                    d          sd|d<   |                    d          sd|d<   |d	         }t          j        d
|          rd|d<   Yt          j        d|          rd|d<   t|d         dk    rd|d<   |d         dk    rd|d<   |S )Nmp4hlsF)m3u8_idfatalacodecmp4avcodecavc1urlzchunklist(?:_b\d+)*_ao[_.]nonezchunklist(?:_b\d+)*_vo[_.])_extract_m3u8_formatsgetresearch)self	media_urlvideo_idfmtsfman_urls         YC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/rai.py_fix_m3u8_formatszRaiBaseIE._fix_m3u8_formats   s    ))xU * D D  	) 	)A55?? %$(55?? %$(hGy6@@ )$(8'BB )$(X;&(("(AhKX;&(("(AhK    c           
      ,   d }t          j        d|          sdd|igiS |                     ||d|ddii |                                 dd	i
          }t	          |dd          dk    r|                     |           t	          |dd          dk    }t          t	          |dd                     }t	          |dd           }|s|                     d           t	          |dd          dk    }	t          |          	                                }
g }|
dk    r|
                    |dddd           n|
dk    sd|v r*|                    |                     ||                     n|
dk    rTt          |                    dd          ddd           }|                    |                     ||d!d"#                     nh|
d$k    rOt!          t	          |d%                    }|
                    ||d&k    r|nd t#          d'|d()          d*           nt%          d+|
 d,          |s|	d-u sd.|v r|                     | j        d-/           |s-|s+|                    |                     ||||                     t-          |||d0          S )1Nc                 Z    t          j        dd|           } t          j        dd|           S )Nz(\]\]>)[\r\n\t]+(</)z\1\2z(>)[\r\n\t]+(<!\[CDATA\[))r(   sub)ss    r0   	fix_cdataz3RaiBaseIE._extract_relinker_info.<locals>.fix_cdata7   s-     .!<<A66!DDDr2   z	https?://formatsr$   zDownloading XML metadataoutput@   z
User-AgentRai)notetransform_sourcequeryheadersz./license_urlz{}defaultz	./is_liveNYz
./durationz./url[@type="content"]z"The relinker returned no media urlz./geoprotectionmp3r%   z	https-mp3)r$   r"   r    	format_idm3u8zformat=m3u8f4mzmanifest#live_hds.f4mzmanifest.f4mz3.7.0zaasp-3.7.0.39.44)hdcorepluginhdsF)f4m_idr   r   z	./bitrater   https-delim)r$   tbrrE   zUnrecognized media extension ""Tz/video_no_available.mp4)	countriesmetadata_available)is_livedurationr8   )r(   match_download_xmlgeo_verification_headersr   
report_drmr   raise_no_formatsr
   lowerappendextendr1   r   replace_extract_f4m_formatsr   r   r   raise_geo_restricted_GEO_COUNTRIES_create_http_urlsr   )r*   relinker_urlr,   
audio_onlyr7   relinkerrT   rU   r+   geoprotectionextr8   manifest_urlbitrates                 r0   _extract_relinker_infoz RaiBaseIE._extract_relinker_info6   sj   	E 	E 	E xl33 	8 5677 %%()C&xnLt4466LeLL & N N
 h>>>$FFOOH%%%X{C@@@CG!*X|T"R"R"RSSx)A4PPP	 	H!!"FGGG #8->LLLPSSI&&,,..%<<NN  (	      F]]my88NN411)XFFGGGGE\\+!!"9>JJ".@AAC CL NN444huE 5 C C D D D DE\\!*X{"C"CDDGNN ")A++ww4*7G3GGG      !!H#!H!H!HIII 	^MT116OS\6\6\%%0CX\%]]] 	_' 	_NN411)\7T\]]^^^ 
 
   	r2   c                    d}d}ddgddgddgddgddgd	d
gddgddgddgddgddgddgddgdd$dfd}	 |                      t          ||dfz            |d           n8# t          $ r+}|                     | d|j                    g cY d }~S d }~ww xY wd D             t          j        ||          }	|	sg S |	                    d          r(|	                    d                              d          ndg}
g }t          d |
          D ]C}| 
                    d |            |                    |||fz  d!d"d# ||                     D|S )%NzK/(?P<id>\w+)(?:_(?P<quality>[\d\,]+))?(?:\.mp4)?(?:\.csmil)?/playlist\.m3u8z%s&overrideUserAgentRule=mp4-%si`     i   i     i  i  i  i  i     @  i   i  i  i*  i  i8  )   i  iX  rm   i   i  i  i  i`	  i  i  i  i'     }   c                     | r| dk     rdS t          || z
            t          t          |           t          |          z  dz  |          k     S )z9check if the target is in the range of number +/- percentr   Fg      Y@)absminfloat)numbertargetpcroofs       r0   
percentagez/RaiBaseIE._create_http_urls.<locals>.percentage   sO     VaZZuv''#eFmmeBii.G%.OQU*V*VVVr2   c           	         dd l }t          |           }t                    dk    r|sd                             d          }|r"|dk    r|                    |dz            dz  } nd} d d g}D ]}|                    d          r) | |d                   r|                                |d<   |                    d          |                    d          g                    |           k    r"|                                |d<   | |d         d<   |d         p	|d         pi }|rd	|  |                    d          |                    d          |                    d          p| |                    d
          pd|                    d          pd|                    d          pddn$d	|  |          d         |          d         | ddddS )Nr   r   rP   i,  d   rp   widthheightzhttps-r"   r#   r    r!   fps   )rE   r~   r   rP   r"   r    r   )mathr   lenr'   floorcopy)rP   r   brformat_copyr.   _QUALITYr-   r{   s        r0   get_format_infoz4RaiBaseIE._create_http_urls.<locals>.get_format_info   s   KKKS!!B4yyA~~b~!W[['' b3hhjjc**S0  ,K 0 055<< 2!z#qx00 2)*AEE'NNAEE(OO4S8I8III%&VVXXKN,/KN5) &a.@KN@bK +c^^$11%//(33"u--4%//(33=v%//(33=v"u--3   ,c^^!#q)"3-*  # #r2   *zChecking MP4 availabilityz(: MP4 direct download is not available: c                 v    g | ]6}|                     d           dk    |                     d          dk    4|7S )r"   r%   r    r'   ).0r.   s     r0   
<listcomp>z/RaiBaseIE._create_http_urls.<locals>.<listcomp>   sM     L L La55??f,,xF1J1J 1J1J1Jr2   quality,z"Creating https format for quality rL   r   )r$   protocolrg   )rq   rr   )_request_webpager   r   	to_screencauser(   r)   groupsplitfilterwrite_debugr\   )r*   rh   rc   r-   r,   _MANIFEST_REG	_MP4_TMPLr   emobjavailable_qualitiesr8   qr   r{   s      `         @@r0   rb   zRaiBaseIE._create_http_urls}   sQ   f5	 sssss**++++,$<
 
"	W 	W 	W 	W'	 '	 '	 '	 '	 '	 '	T	!!Is(;;<<hHce e e e 	 	 	NNhYYPQPWYYZZZIIIIII	
L L4 L L L y55 	IBF**YBWBWbdjj3399#>>>^a]b122 	 	AE!EEFFFNN L!#44#  "/!$$	     s   )A( (
B2 BBBc                 H    fd| pi                                  D             S )Nc                 8    g | ]}|d t          |          iS )r$   )r   )r   	thumb_urlr$   s     r0   r   z2RaiBaseIE._get_thumbnails_list.<locals>.<listcomp>   sF     A A AiA73	**
 A A Ar2   )values)thumbsr$   s    `r0   _get_thumbnails_listzRaiBaseIE._get_thumbnails_list   sF    A A A A"Lb0022A A A 	Ar2   c           	      j   d}d}i }|                     d          p|                     d          pg }dD ],}|                    d|                     |          i           -|D ]}|                     d          }|rt          |t                    r|                     d          pd}	t	          | |          }t          ||          }
|                    |	g                               |
|d	           ||
k    r7||	                             ||d t          |                    |z   d	           |S )
NstlsrtsubtitlesArraysubtitleList)	subtitlessubtitlesUrlr$   languageit)rg   r$   )r'   r\   
isinstancestrr   r
   
setdefaultr   )r$   
video_dataSTL_EXTSRT_EXTr   subtitles_arrayksubtitlesub_urlsub_langsub_exts              r0   _extract_subtitleszRaiBaseIE._extract_subtitles   so   	$..)9::bjnn^>\>\b`b. 	? 	?A""E:>>!+<+<#=>>>>' 	 	Hll5))G :gs33 #<<
33;t!#w//'99$$Xr2299""; ;    g%%h'..&&~W~6@0 0    r2   N)F)__name__
__module____qualname___UUID_REra   _GEO_BYPASSr1   rj   rb   staticmethodr   r    r2   r0   r   r      s        IHVNK  .E E E EN] ] ]~ A A \A
   \  r2   r   c                      e Zd Zdej         dZddi 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idddd d!d"d#d$d%dd&d'id(d)d*i dd+ddd	d,dd-dd.dd/dd0dd1dd2dd3dd4d5d6dd7d8d6dd9d!d:d#d;d%d<id&d'id=gd>d?d@dAddBdCdDdEdFdGd4dHdId6dJdKdLdMdNdOdPdQddRdSdTddUdVdgdWdXdYdZd[d\d]dNd^d'd_d`d'd_dad'd_gZdb ZdcS )d	RaiPlayIEz3(?P<base>https?://(?:www\.)?raiplay\.it/.+?-(?P<id>))\.(?:html|json)zbhttps://www.raiplay.it/video/2014/04/Report-del-07042014-cb27157f-9dd0-4aee-b788-b1f67643a391.html 8970abf8caf8aef4696e7b1f2adfc696idz$cb27157f-9dd0-4aee-b788-b1f67643a391rg   r   titlezReport del 07/04/2014	alt_titleu6   St 2013/14 - Report - Espresso nel caffè - 07/04/2014descriptionz$md5:d730c168a58f4bb35600fc2f881ec04e	thumbnailz%re:^https?://www\.raiplay\.it/.+\.jpguploaderzRai 3creatorrU   i  seriesReportseasonz2013/14r   r   zcount:4release_yeari  episodeu    Espresso nel caffè - 07/04/2014	timestampiHNCSupload_date20140408r8   skip_downloadTr$   md5	info_dictparamszfhttps://www.raiplay.it/video/2021/11/Blanca-S1E1-Senza-occhi-b1255a4a-8e72-4a2f-b9f3-fc1308e00736.html aeda7243115380b2dd5e881fd42d949az$b1255a4a-8e72-4a2f-b9f3-fc1308e00736zBlanca - S1E1 - Senza occhiz St 1 Ep 1 - Blanca - Senza occhiz$md5:75f95d5c030ec8bac263b1212322e28cz+re:^https://www\.raiplay\.it/dl/img/.+\.jpgzRai PremiumzRai Fictioni]  BlancazSeason 1episode_numberr   i  season_numberzSenza occhiia20211119zcount:73Video not available. Likely due to geo-restriction.)r$   r   r   r   expected_warningszlhttps://www.raiplay.it/video/2012/09/S1E11---Tutto-cio-che-luccica-0cab3323-732e-45d6-8e86-7704acab6598.html a634d20e8ab2d43724c273563f6bf87az$0cab3323-732e-45d6-8e86-7704acab6598u+   Mia and Me - S1E11 - Tutto ciò che luccicau0   St 1 Ep 11 - Mia and Me - Tutto ciò che luccicaz$md5:4969e594184b1920c4c1f2b704da9deare:^https?://.*\.jpg$zRai Gulpz
Mia and Me   i  u   Tutto ciò che luccicaif`P20120924)r   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r   r   zhttps://www.raiplay.it/video/2022/10/Ad-ogni-costo---Un-giorno-in-Pretura---Puntata-del-15102022-1dfd1295-ea38-4bac-b51e-f87e2881693b.html 572c6f711b7c5f2d670ba419b4ae3b08z$1dfd1295-ea38-4bac-b51e-f87e2881693bz=Ad ogni costo - Un giorno in Pretura - Puntata del 15/10/2022z1St 2022/23 - Un giorno in pretura - Ad ogni costoz$md5:4046d97b2687f74f06a8b8270ba5599fg     z@zDhttps://www.raiplay.it/dl/img/2022/10/12/1665586539957_2048x2048.pngzUn giorno in preturaz2022/23zAd ogni costoiEc20221011i  )r   rg   r   r   r   r   rU   r   creatorsr   r   r   r   r   r   z^http://www.raiplay.it/video/2016/11/gazebotraindesi-efebe701-969c-4593-92f3-285f0d1ce750.html?r$   only_matchingzbhttps://www.raiplay.it/video/2020/12/Report---04-01-2021-2e90f1de-8eee-4de4-ac0e-78d21db5b600.htmlzhttps://www.raiplay.it/video/2021/06/Lo-straordinario-mondo-di-Zoey-S2E1-Lo-straordinario-ritorno-di-Zoey-3ba992de-2332-41ad-9214-73e32ab209f4.htmlc                    |                      |                                          \  }}|                     | d|d          }t          |d          r|                     |           |d         }|                     |d         |          }t          |                    d          |                    d          d	          }|                    d
          }t          |                    d          |                    d          d	          }	i dt          |                    d          d          p|d|d|                    d          dt          |	pd           d|                    d          dt          t          |d          p|                    d          pd           dt          t          |d          p|                    d          pd           dt          |                    d                    dt          |          d|                     |                    d          |          dt          |d           d!t          |          d
|r|                                s|nd d"|                    d#          d$t          |                    d"                    d%|                     ||          d&t          t          |d'                    |S )(N.jsonDownloading video JSON)rights_managementrightsdrmvideocontent_urldate_publishedtime_published rN   r   r   toptitle - r   ContentItem-
display_idr   namer   r   r   )program_infochannelr   r   )r   editorr   rU   r   
thumbnailsimagesr   )r   r   r   r   episode_titler   r   r   )
track_info	edit_year)_match_valid_urlgroups_download_jsonr   rY   rj   r   r'   r   r   r   r   r   r   isdigitr   )
r*   r$   baser,   mediar   relinker_infor   r   r   s
             r0   _real_extractzRaiPlayIE._real_extractf  s3   ..s33::<<h##NNNH&>@ @ EFF 	&OOH%%%g33E-4H(SS&II&''3C)D)DCQ Q Q8$$!%))J"7"7:9N9NV[\\\	
,uyy??K8
(
 UYYv&&
 y'8D99	

 599]33
 U$?@@ 099Y''0+/1 1
 }U$>?? /99X&&/*.0 0
 uyy'<'<==
 *>::
 $33EIIh4G4GMM
 l5*BCC
  [00!
" K0@0@Kfft#
$ uyy11%
& k%))I*>*>??'
( 00e<<)
* KU<W(X(XYY+
, -
 	
r2   Nr   r   r   r   r   
_VALID_URL_TESTSr
  r   r2   r0   r   r      s       m	HZmmmJs1
8
5
 ,
 Q	

 A
 A
 
 w
 
 h
 i
 $	*
 D
 9
 
  :!
" y#
& #D)- 2 x1
8
5
 2
 ;	

 A
 G
 
 }
 
 h
 j
 a
 D
 Q
 }
  !
" :#
$ y%
 
( #D)ST3 8 ~18BKA1""   /#%
 
	 . \18TLA_ 	,&#% 
 
	 , p 
 t  e EfFP'
 '
 '
 '
 '
r2   r   c                   >    e Zd ZdZddddddddd	d
dddddd	idgZdS )RaiPlayLiveIEzA(?P<base>https?://(?:www\.)?raiplay\.it/dirette/(?P<id>[^/?#&]+))z'http://www.raiplay.it/dirette/rainews24z$d784ad40-e0ae-4a69-aa76-37519d238a9c	rainews24r   zHre:^Diretta di Rai News 24 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$z$md5:4d00bcf6dc98b27c6ec480de329d1497zRai News 24TrT   20090502i<_Izcount:3)r   r   rg   r   r   r   r   rT   live_statusr   r   r8   r   r$   r   r   Nr   r   r   r  r  r   r2   r0   r  r    s_        UJ88%_A%$$%# 
 
 #D)!  FFFr2   r  c                   @    e Zd ZdZdddddddd	dd
ddddgZd ZdS )RaiPlayPlaylistIEz^(?P<base>https?://(?:www\.)?raiplay\.it/programmi/(?P<id>[^/?#&]+))(?:/(?P<extra_id>[^?#&]+))?z3https://www.raiplay.it/programmi/nondirloalmiocapo/nondirloalmiocapozNon dirlo al mio capoz$md5:98ab6b98f7f44c2843fd7d6f045f153br   r   r      r$   r   playlist_mincountzFhttps://www.raiplay.it/programmi/nondirloalmiocapo/episodi/stagione-2/z"Non dirlo al mio capo - Stagione 2   r$   r   playlist_countc                    |                      |                                          \  }}}|                     | d|d          }|r'|                                                    d          }|                    d          }g }|                    d          pg D ]}|                    d          pg D ]c}	|r|t          |                    d          |	                    d          d                              dd	                                          k    rht          ||	                    d          d
          }|	                    d          }
|
s|                     | d|
 d|
dd          }|s|                    d          pg D ]}|                    d          }|st          ||          }|	                    | 
                    |t                                          t                              |                               e|                     |||t          |d                     S )Nr   Downloading program JSON/r   blockssetsrN   r   rM   r   r   zDownloading content set JSONF)r   itemspath_id)ier,   c                     | d         d         S )Nr   r   r   xs    r0   <lambda>z1RaiPlayPlaylistIE._real_extract.<locals>.<lambda>  s    q'8'G r2   )r  r  r  upperrstripr'   r   r^   r   r\   
url_resultr   ie_key	_match_idplaylist_resultr   )r*   r$   r  playlist_idextra_idprogramplaylist_titleentriesbr6   s_idmediasmr%  	video_urls                  r0   r
  zRaiPlayPlaylistIE._real_extract  s   &*&;&;C&@&@&G&G&I&I#k8%%NNNK)CE E  	4~~''..s33H V,,++h''-2 	B 	BAeeFmm)r B B _=EE&MM155==$E $E $EELWSRUEVEVW\W\W^W^_ _ %2>155==X]%^%^%^NuuT{{ ,,))d)))42% - A A   **W--3 B BAeeI..G" !  'W 5 5INN4??!i&6&6&8&8!*!4!4Y!?!? $3 $A $A B B B BBB0 ##[.GGGHHJ J 	Jr2   Nr   r   r   r  r  r
  r   r2   r0   r  r    s        rJ E%,A
 

  	 	 X%9A
 

 	 	F(&J &J &J &J &Jr2   r  c                       e Zd Zdej         dZddddddd	d
ddddddddddidddi dddddddddddd d!d"d#d$d%d gd&d'd(d)d*d+d,d-d.d/d0d1d2d3d4gZd5 Zd6S )7RaiPlaySoundIEz8(?P<base>https?://(?:www\.)?raiplaysound\.it/.+?-(?P<id>r   zkhttps://www.raiplaysound.it/audio/2021/12/IL-RUGGITO-DEL-CONIGLIO-1ebae2a7-7cdb-42bb-842e-fe0d193e9707.htmlr   z$1ebae2a7-7cdb-42bb-842e-fe0d193e9707rD   z&Il Ruggito del Coniglio del 10/12/2021z$md5:0e6476cd57858bb0f3fcc835d305b455z$md5:2a17d2107e59a4a8faa0e18334139ee2zre:^https?://.+\.jpg$rai radio 2i5  Il Ruggito del Coniglioi|/a20211201)r   rg   r   r   r   r   r   rU   r   r   r   r   r   r   Tr   zhttps://www.raiplaysound.it/audio/2020/05/Storia--Lunita-dItalia-e-lunificazione-della-Germania-b4c16390-7f3f-4282-b353-d94897dacb7c.html c69ebd69282f0effd7ef67b7e2f6c7d8r   z$b4c16390-7f3f-4282-b353-d94897dacb7crg   r   u=   Storia | 01 L'unità d'Italia e l'unificazione della Germaniar   z$md5:ed4ed82585c52057b71b43994a59b705r   z$md5:92818b6f31b2c150567d56b75db2ea7fr   zrai radio 3rU   g     @r   zXhttps://www.raiplaysound.it/dl/img/2023/09/07/1694084898279_Maturadio-LOGO-2048x1152.jpgr   r   	Maturadior   zSeason 9r   	   r   u5   01. L'unità d'Italia e l'unificazione della Germaniar   r   r   i^r   20200525r   c                    |                      |                              dd          \  }}|                     | d|d          }t          |d           }i }g }t	          t          |d                    }|D ]A}	|                     |	|d          }|                    |                    d                     Bt          |d	 d
 f          }
t          |dd          pi }i ||p||t          |dd          t          |dt                    |                    d          t          |dt                    t          |dt                    t          |
          |                     |                    d          |          |                    d          t          |                    d                    |                    d          t          |                    d                    |dS )Nr  r   r   zDownloading audio JSONc                 J    t          t          | d         d          d          S )N
uniquenamer   zPage-)r   r(  s    r0   r*  z.RaiPlaySoundIE._real_extract.<locals>.<lambda>  s     |L<R`4a4acj'k'k r2   ))downloadable_audioaudio)livecardsr   rI  r$   Tr8   c                 F    | d          d|                      d          pd S )Ncreate_dater   create_time r   r(  s    r0   r*  z.RaiPlaySoundIE._real_extract.<locals>.<lambda>  s+    a6F3e3e}I]I]Icac3e3e r2   c                     | d         d         S )NrJ  rM  r   r(  s    r0   r*  z.RaiPlaySoundIE._real_extract.<locals>.<lambda>  s    1V9]3K r2   podcast_info)rJ  rK  r   r   r   )r  
media_name)expected_typer   )r  r   )r  r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r8   )r  r   r  r   setr   rj   r]   r'   r   r   r   r   )r*   r$   r  audio_idr  uidinfor8   	relinkersrr   rQ  s               r0   r
  zRaiPlaySoundIE._real_extract  s   ..s3399&$GGh##tNNNH>VWWekkllU,sttuu	 	0 	0A..q(DAADNN488I..//// )e)e)K)K)M N N $E>;OPPVTV

/"!%/BB%e-IYfggg 99]33$U,EUbccc#E+CS`aaa*>::33L4D4DX4N4NPSTT"&&w//(8)<)<==yy11)%))I*>*>??
 
 
 	
r2   Nr  r   r2   r0   r=  r=    se       rYM_rrrJ|18=?A1%/?$#%
 
 #D)% * [1
8
5
 T
 ?	

 A
 
 
 s
 
 k
 j
 Q
 N
 a
 
  :!
	 ')FV!
 !
 !
 !
 !
r2   r=  c                   :    e Zd ZdZdddddddd	d
ddd
ddidgZdS )RaiPlaySoundLiveIEz?(?P<base>https?://(?:www\.)?raiplaysound\.it/(?P<id>[^/?#&]+)$)z"https://www.raiplaysound.it/radio2z$b00a50e6-f404-4af6-8f8c-ff3b9af73a44radio2r   z"re:Rai Radio 2 \d+-\d+-\d+ \d+:\d+z0re:^https://www\.raiplaysound\.it/dl/img/.+\.pngr>  zRai Radio 2raiplaysoundTrT   )
r   r   rg   r   r   r   r   r   rT   r  r   r  Nr  r   r2   r0   r[  r[  6  sY        SJ38":L%#%$
 
 #D)  FFFr2   r[  c                   >    e Zd ZdZdddddddd	d
ddddgZd ZdS )RaiPlaySoundPlaylistIEz{(?P<base>https?://(?:www\.)?raiplaysound\.it/(?:programmi|playlist|audiolibri)/(?P<id>[^/?#&]+))(?:/(?P<extra_id>[^?#&]+))?z:https://www.raiplaysound.it/programmi/ilruggitodelconiglioilruggitodelconiglior?  z$md5:62a627b3a2d0635d08fa8b6e0a04f27er  A   r  zVhttps://www.raiplaysound.it/programmi/ilruggitodelconiglio/puntate/prima-stagione-1995z0ilruggitodelconiglio_puntate_prima-stagione-1995zPrima Stagione 1995)r   r   r   r  c           	      ^                          |                              ddd          \  } d}                     ||d          }r                    d          |d                    dd          z   z  }t          fd|                    d	          pg D                       }                     t          d
|          |d          } fdt          |dd          pg D             } 	                    |||                    d          t          |d                    S )Nr  r   r2  r   r   r!  _c              3   V   K   | ]#}|                     d           v |d         V  $dS )weblinkr%  Nr   )r   cr2  s     r0   	<genexpr>z7RaiPlaySoundPlaylistIE._real_extract.<locals>.<genexpr>g  sA      kkhZ[Z_Z_`iZjZjNjNj)NjNjNjNjkkr2   filterszhttps://www.raiplaysound.itz"Downloading program secondary JSONc           	          g | ]Y}|                     d                               t          |d                    t                                                    ZS )r%  )r&  )r'   r-  r   r=  r.  )r   rf  r  r*   s     r0   r   z8RaiPlaySoundPlaylistIE._real_extract.<locals>.<listcomp>k  se     ! ! !uuY!OOGD!I,77N<Q<Q<S<SOTT! ! !r2   rK  )blockrK  r   )rQ  r   )
r  r   r  r,  r^   nextr'   r   r   r0  )r*   r$   r1  r3  pathr5  r  r2  s   `     @@r0   r
  z$RaiPlaySoundPlaylistIE._real_extract_  sg   &*&;&;C&@&@&F&FvtU_&`&`#k8nnn%%c;8RSS 	qs++H3!1!1#s!;!;;;Kkkkkgkk).D.D.JkkkkkD))5t<<kKoq qG! ! ! ! !!'74FGGM2! ! !
 ##G['++g:N:N$0:Y$Z$Z\ \ 	\r2   Nr;  r   r2   r0   r_  r_  J  s         PJ L(.A
 

  	 	 hD*
 
  F&\ \ \ \ \r2   r_  c            
       t    e Zd Zdej         dZddddddd	d
ddidgddddddddddddiddddgZd ZdS )RaiIEz.https?://[^/]+\.(?:rai\.(?:it|tv))/.+?-(?P<id>z)(?:-.+?)?\.htmlzghttps://www.raisport.rai.it/dl/raiSport/media/rassegna-stampa-04a9f4bd-b563-40cf-82a6-aad3529cb4a9.htmlz$04a9f4bd-b563-40cf-82a6-aad3529cb4a9r   zTG PRIMO TEMPOzre:^https?://.*\.jpgi  20140612)r   rg   r   r   rU   r   r   Tr   r$   r   r   r   zahttps://www.rai.it/dl/RaiTV/programmi/media/ContentItem-efb17665-691c-45d5-a60c-5301333cbb0c.htmlz$efb17665-691c-45d5-a60c-5301333cbb0czTG1 ore 20:00 del 03/11/2016z6TG1 edizione integrale ore 20:00 del giorno 03/11/2016r   i  20161103)r   rg   r   r   r   rU   r   r  z`http://www.rai.it/dl/RaiTV/programmi/media/ContentItem-b63a4089-ac28-48cf-bca5-9f5b5bc46df5.htmlr   c                    |                      |          }|                     d| d|ddd          d S dd         v r[d	t          d
                    d          d          d                             d          d                    d          dgi}n6dd         v r|                     d         |          }nt          d          |                     fddD             |          }|t                              d          p                    d                    t                              d                    pd |t                              d                    pd t                              d                    t                              d                    | 
                    |          d|S )Nz8https://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-z
.html?jsonr   Fi  )r   expected_statusAudiotyper8   rL   formatoAudiorM   rN   audioUrlr%   )rE   r$   rg   r"   r    VideomediaUriznot a media filec                 <    i | ]}|                     |          S r   r   )r   
image_typer  s     r0   
<dictcomp>z'RaiIE._real_extract.<locals>.<dictcomp>  s3     7 7 7:Z:.. 7 7 7r2   )imageimage_medium	image_300r   r   descauthordatelength)r   r   r   r   r   r   rU   r   )r/  r  r   r'   rj   r   r   r   r   r   r   )r*   r$   
content_idr	  r   r  s        @r0   r
  zRaiIE._real_extract  s   ^^C((
##]z]]]0s $ T T =4eFm##!.w		.8Q8QY\!]!]!] , 99^44$#ii77  MM f%% 77j8I:VVMM !3444..7 7 7 7 B6 7 7 78;= =

 "599V#4#4#J		'8J8JKK(6):):;;Ct$%eii&9&9::Bd*599V+<+<==&uyy':':;;00e<<

 

 

 
	
r2   Nr  r   r2   r0   rn  rn  t  s        g9CUgggJx8%0%
 
 #D)ST  s83S1%
 
 #D)  r 1F<&
 &
 &
 &
 &
r2   rn  c                       e Zd Zdej         dZdej         dgZddddd	d
dddddidddddddddddddidgddddgZdZd Z	d S )!	RaiNewsIEz7https?://(www\.)?rainews\.it/(?!articoli)[^?#]+-(?P<id>)(?:-[^/?#]+)?\.html-<iframe[^>]+data-src="(?P<url>/iframe/[^?#]+?\.html)zhttps://www.rainews.it/video/2024/02/membri-della-croce-rossa-evacuano-gli-abitanti-di-un-villaggio-nella-regione-ucraina-di-kharkiv-il-filmato-dallucraina--31e8017c-845c-43f5-9c48-245b43c3a079.htmlz$31e8017c-845c-43f5-9c48-245b43c3a079r   z$md5:1e81364b09de4a149042bac3c7d36f0b   20240225rainewscount:2r   rg   r   rU   r   r   r8   r   Tr  zhttps://www.rainews.it/dl/rainews/media/Weekend-al-cinema-da-Hollywood-arriva-il-thriller-di-Tate-Taylor-La-ragazza-del-treno-1632c009-c843-4836-bb65-80c33084a64b.htmlz$1632c009-c843-4836-bb65-80c33084a64bzXWeekend al cinema, da Hollywood arriva il thriller di Tate Taylor "La ragazza del treno"z"I film in uscita questa settimana.zre:^https?://.*\.png$iA  rq  zcount:8)r   rg   r   r   r   rU   r   r8   zunable to extract player_datarp  zhttps://www.rainews.it/iframe/video/2022/07/euro2022-europei-calcio-femminile-italia-belgio-gol-0-1-video-4de06a69-de75-4e32-a657-02f0885f8118.htmlr   newsc                    |                      |          }|                     ||          }|                     d| j         d|d|t          i           }|                    d          }t          |dd          }|sI	 t                              | |          S # t          $ r  t          $ r}t          d|	          d }~ww xY w|                     t          ||          |          }||                    d
          p)|                    d
          p|                     |          t          |                    d                    t          |                    d          pd           d|S )Nz<raiz-player\s*data=\'player_data)r=   rA   r  
mediapolisr   zRelinker URL not found)r   r   r  r   )r   r   r   r   )r/  _download_webpage_search_json_PLAYER_TAGr	   r'   r   rn  r
  r   r   rj   r   _og_search_titler   r   )	r*   r$   r,   webpager  r  rc   r   r	  s	            r0   r
  zRaiNewsIE._real_extract  s   >>#&&((h77''7D$777-QY' ( 5 5 !__\22
#K}MM 	HH**4555%   ! H H H$%=QGGGGH 33GC4N4NPXYY  __W--j1H1HjDLaLabiLjLj*:>>&+A+ABB%jnnX&>&>&F$GG	
 

 
 	
s   >B C-B>>CN)
r   r   r   r   r   r  _EMBED_REGEXr  r  r
  r   r2   r0   r  r    s        tIL^tttJ`YEW```aL X8;%! 
 
 #D)  y8o?1% 	
 	
 #D)=> " e 9 FB K
 
 
 
 
r2   r  c            	       b    e Zd Zdej         dZdej         dgZddddd	d
dddddidgZdZdS )RaiCulturaIEz:https?://(www\.)?raicultura\.it/(?!articoli)[^?#]+-(?P<id>r  r  r  zhttps://www.raicultura.it/letteratura/articoli/2018/12/Alberto-Asor-Rosa-Letteratura-e-potere-05ba8775-82b5-45c5-a89d-dd955fbde1fb.htmlz$05ba8775-82b5-45c5-a89d-dd955fbde1fbr   z'Alberto Asor Rosa: Letteratura e poterei  20181206
raiculturar  r  r   Tr  culturaN)	r   r   r   r   r   r  r  r  r  r   r2   r0   r  r    s~        wyOawwwJ`YEW```aL Y8>%$ 
 
 #D)  F KKKr2   r  c            
       ^    e Zd ZdZdddddddd	d
dddidddddd	ddddiddddgZd ZdS )RaiSudtirolIEz8https?://rai(?:bz|sudtirol)\.rai\.it/.+media=(?P<id>\w+)z;https://raisudtirol.rai.it/la/index.php?media=Ptv1619729460Ptv1619729460r   z/Euro: trasmisciun d'economia - 29-04-2021 20:51zEuro: trasmisciun d'economia20210429z+re:https://raisudtirol\.rai\.it/img/.+\.jpgraisudtirolzcount:1)r   rg   r   r   r   r   r   r8   r   Tr  zIhttps://raisudtirol.rai.it/it/kidsplayer.php?lang=it&media=GUGGUG_P1.smil	GUGGUG_P1z(GUGGUG! La Prospettiva - Die Perspektivezcount:6)r   rg   r   r   r8   z5https://raibz.rai.it/de/index.php?media=Ptv1751660400r   c                 l   |                      |          }|                     ||          }|                     d|dd           }|                     ddg|dd           }|                     ddg|d	d           }t          |          }|d
k    r|                     ||          }n?|dk    rd|                     |          ddddddg}ng }|                     d|            |t          ||d          |r|nd t          |          t          d|                     d|dd                     d|dS )Nz#<span class="med_data">(.+?)</span>
video_dater@   z$<span class="med_title">(.+?)</span>ztitle: \'(.+?)\',video_titlez"sources:\s*\[\{file:\s*"(.+?)"\}\]z4<source\s+src="(.+?)"\s+type="application/x-mpegURL"r:  rF   r   z	https-mp4rn   ro   r   r#   r!   )rE   r$   r~   r   r   r"   r    zUnrecognized media file: r   rN   zhttps://raisudtirol.rai.it/zimage: \'(.+?)\'video_thumbr  )r   r   r   r   r   r   r8   )
r/  r  _html_search_regexr
   r&   _proto_relative_urlrZ   r   r   r   )	r*   r$   r,   r  r  r  r:  rg   r8   s	            r0   r
  zRaiSudtirolIE._real_extract5  s   >>#&&((h77,,2G\SW - Y Y
--35I/K]D . 2 2 ++1C-E [$ , 0 0	
 I&&&==00HEEGGE\\(//	::    GG G!!"Ii"I"IJJJ ";
%HHH%/9kkT*:66 !>@W@W#WmT AX AK AK L L%	
 	
 		
r2   Nr;  r   r2   r0   r  r    s        LJ M!G5%G% 	
 	
 #D)   [?% 
 
 #D)  G 3F<(
 (
 (
 (
 (
r2   r  )"r(   commonr   
networkingr   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r=  r[  r_  rn  r  r  r  r   r2   r0   <module>r     s   				 ! ! ! ! ! ! $ $ $ $ $ $                                     *_ _ _ _ _ _ _ _DQ
 Q
 Q
 Q
 Q
	 Q
 Q
 Q
h    I   ,<J <J <J <J <J <J <J <J~N
 N
 N
 N
 N
Y N
 N
 N
b       ('\ '\ '\ '\ '\] '\ '\ '\TF
 F
 F
 F
 F
I F
 F
 F
RB
 B
 B
 B
 B
	 B
 B
 B
J    9   &H
 H
 H
 H
 H
I H
 H
 H
 H
 H
r2   