
    Ğiۻ                     
   d dl Z d dlZ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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"m#Z#m$Z$m%Z%m&Z&m'Z' dd	l(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          Z0 G d de
          Z1 G d de          Z2 G d de
          Z3 G d de+          Z4 G d de+          Z5dS )     N   )AdobePassIE)InfoExtractor)ThePlatformBaseIEThePlatformIE
default_ns   )HEADRequest)ExtractorErrorRegexNotFoundErrorUserNotLive
clean_htmldetermine_extextract_attributesfloat_or_noneget_element_html_by_classint_or_nonejoin_nonemptymake_archive_idmimetype2extparse_age_limitparse_durationparse_iso8601
remove_endtry_getunescapeHTMLunified_timestampupdate_url_queryurl_basenameurl_or_none)requiretraverse_objc                   0    e Zd ZdgZdZdZd Zd ZddZdS )	NBCUniversalBaseIEUSFz`https?://[^/?#]+/prod/[\w-]+/(?P<folders>[^?#]+/)cmaf/mpeg_(?:cbcs|cenc)\w*/master_cmaf\w*\.m3u8c                    |                      d| |ddi |dddd|                                           }d	t           d
}t          || dd t          f          x}r|S t          || dd dt          f          }|dk    r|                     | j                   t          t          || ddt          f          |dk              )Nhttps://link.theplatform.com/s/zDownloading SMIL manifestz Failed to download SMIL manifestSMILm3uHLSServiceSecure)formatmanifestswitch)queryheadersz//{}z
video/@srcc                 (    t          |          dk    S )Nm3u8)r   _vs     YC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/nbc.py<lambda>zMNBCUniversalBaseIE._download_nbcu_smil_and_extract_m3u8_url.<locals>.<lambda>6   s    mTUFVFVZ`F`     paramc                 4    |                     d          dk    S )Nname	exceptiongetr3   s     r6   r7   zMNBCUniversalBaseIE._download_nbcu_smil_and_extract_m3u8_url.<locals>.<lambda>9   s    QUU6]]k=Y r8   z@valueGeoLocationBlocked)	countrieszref/@abstract.Expiredexpected)_download_xmlgeo_verification_headersr   r"   anyraise_geo_restricted_GEO_COUNTRIESr   )selftp_pathvideo_idr.   smilnsurlexcs           r6   (_download_nbcu_smil_and_extract_m3u8_urlz;NBCUniversalBaseIE._download_nbcu_smil_and_extract_m3u8_url+   s+   !!7g77')K TT !,	T T T
 4466 " 8 8 #J"""t&7&7&79`9`be%fggg3 	J4R,,,0Y0Y[ceh!ijj&&&%%0C%DDD\$B1E1E1EsC0PQQ\_cl\lmmmmr8   c                 B   d|d<   |                      |||          x}}t          j        | j        |          x}r^d|d<   |                      |||          }d|v r|                     d           |                    |                    d                    }d|v sd	|v r|                     |           |                     ||d
dd          \  }}	|sH||k    rB|                     ||d
dd          \  }
}	d |
D             }|
r|s|                     |           ||	fS )Nzm3u+none,mpeg4formatsmpeg4z	{folders}z,Found m3u8 URL template, formatting URL pathfolders)rT   z
/mpeg_cencz
/mpeg_cbcsmp4hlsFm3u8_idfatalc                 <    g | ]}|                     d           |S )has_drmr=   ).0fs     r6   
<listcomp>zJNBCUniversalBaseIE._extract_nbcu_formats_and_subtitles.<locals>.<listcomp>U   s)    DDDQ1553C3CDqDDDr8   )	rP   re	fullmatch_M3U8_REwrite_debugr+   group
report_drm#_extract_m3u8_formats_and_subtitles)rI   rJ   rK   r.   orig_m3u8_urlm3u8_urlmobj	m3u8_tmplrR   	subtitles	orig_fmtss              r6   #_extract_nbcu_formats_and_subtitlesz6NBCUniversalBaseIE._extract_nbcu_formats_and_subtitles>   s    ,i#'#P#PQXZbdi#j#jj<x8884 	G&E)EEgxY^__Ii''  !OPPP ''

90E0E'FFH8##|x'?'?OOH%%%!EEhuE F C C  	*8}44#'#K#KxU $L $L $L IyDD)DDDG * *)))	!!r8   Nc                    |                      ||          }|                     d|d|          }i }t          t          d|          pd          }|r|                    d          p|d         }|d         }	|                     |                    d          pd|d	t          
          }
|                    d          p|
d         |                    d          dk    r|d         }|d         }|                     |                    d          p|d         |d         ||                    d                    }|                     |||d         ||d                   |d<   nrt          |dd t          t          d          hf          }|d         |                    d          p|d         }|d         }	t          |dfdt          f          pi }
| d |	 d! }|                     ||          \  }}|                     |d	"          }|                     |          }|                     |d#         |$           i |t          |
d%t           hfd&t           hfd't"          hfd(t$          hfd)t&          hfd*t"          hfd+t"          hfd,t           hfd-t           hfd.	          ||||rt)          |          gnd d/S )0Nz=<script[^>]+data-drupal-selector="drupal-settings-json"[^>]*>settingsztve-video-deck-app zdata-mpx-media-account-pidzdata-mpx-account-pidzdata-mpx-media-account-idzdata-normalized-videoF)rY   transform_sourcez	data-guidguidzdata-entitlementauthtve_adobe_authzdata-release-pidzdata-adobe-pass-resource-idadobePassResourceIdz
data-titlezdata-ratingadobePassRequestorIdadobePassSoftwareStatementls_playlistc                     |d         S )NdefaultGuid r3   s     r6   r7   z8NBCUniversalBaseIE._extract_nbcu_video.<locals>.<lambda>t   s    Am,< r8   zLS playlistry   mpxMediaAccountPidmpxAccountPidmpxMediaAccountIdvideosc                     |d         k    S )Nrq   rz   )r4   r5   rK   s     r6   r7   z8NBCUniversalBaseIE._extract_nbcu_video.<locals>.<lambda>x   s    6V^I^ r8   z/media/guid//rY   rj   targettitledescriptiondurationInSecondsairDatethumbnailUrlseasonNumberepisodeNumberepisodeTitleshow)	r   r   duration	timestamp	thumbnailseason_numberepisode_numberepisodeseries)id
display_idrR   rj   _old_archive_ids)_download_webpage_search_jsonr   r   r>   _parse_jsonr   _get_mvpd_resource_extract_mvpd_authr"   rF   r!   rl   _download_theplatform_metadata_parse_theplatform_metadata_merge_subtitlesstrr   r   r    r   )rI   rN   r   
old_ie_keywebpagern   r.   tveaccount_pid
account_idmetadatarr   release_pidresourcerw   rJ   rR   rj   tp_metadataparsed_inforK   s                       @r6   _extract_nbcu_videoz&NBCUniversalBaseIE._extract_nbcu_video[   s`   ((j99$$LZ- -  !:;OQX!Y!Y!_]_`` 	l''">??^3G]C^K89J''/006B
%bn ( p pHww{++?x/?Hww)**f44 01!"4522GG9::YdCX>Y%{CGGM4J4JL L !% 7 7d+A&Bd#?@!B !Bf 'x<<cGMDZDZC[2] ^ ^K"=1H%//*>??_;C_K$%89J#K(<^<^<^<^`c1deekikH EEjEE8EE!EEgxY^__99'8SX9YY66{CCk+6yIII

8!C5) -u50;-@'-9,{m<"0;-!@#2[M"B*SE2!C5/
& 
& 
 

 $"KU _X!F!F G G[_#
 
 
 	
r8   N)	__name__
__module____qualname__rH   _GEO_BYPASSra   rP   rl   r   rz   r8   r6   r$   r$   &   sZ        VNKrHn n n&" " ":7
 7
 7
 7
 7
 7
r8   r$   c                   d   e Zd ZdZ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dddddd d!gd"d#d$d%gd&d'd(id)d*i dd+dddd,dd,dd-dd.dd/dd0d	d1dddd2dd3dd4dd5ddd"d6d7d8d9gd:gd;d'd(id)d<d=dd>d?d@dAdd>dBdCdDgdEd'd(id)dFdGdHdIdGdHdJdGdHgZdKZdL ZdMS )NNBCIEz\https?(?P<permalink>://(?:www\.)?nbc\.com/(?:classic-tv/)?[^/?#]+/video/[^/?#]+/(?P<id>\w+))z[http://www.nbc.com/the-tonight-show/video/jimmy-fallon-surprises-fans-at-ben-jerrys/2848237r   2848237extrU   r   z,Jimmy Fallon Surprises Fans at Ben & Jerry'sr   zJimmy gives out free scoops of his new "Tonight Dough" ice cream flavor by surprising customers at the Ben & Jerry's scoop shop.r   iFTupload_date20150218uploaderzNBCU-COMr   r   V   seasonSeason 2r   r	   r   Tonightr   g㥛 m@tagszcount:2r   re:https?://.+\.jpg
categoriesz-Series/The Tonight Show Starring Jimmy Fallon
media_typeFull Episode   ztheplatform 2848237)	age_limitr   skip_downloadr2   rN   	info_dictparamszhttps://www.nbc.com/the-golden-globe-awards/video/oprah-winfrey-receives-cecil-b-de-mille-award-at-the-2018-golden-globes/36464393646439zHOprah Winfrey Receives Cecil B. de Mille Award at the 2018 Golden Globesr   z	Season 75K   zGolden GlobeszZOprah Winfrey receives the Cecil B. de Mille Award at the 75th Annual Golden Globe Awards.20180107iQZgv́@zcount:8	Highlightr   r   zSeries/The Golden Globe Awardsztheplatform 3646439)r   r   z}https://www.nbc.com/paris2024/video/ali-truwit-found-purpose-pool-after-her-life-changed/para24_sww_alitruwittodayshow_240823$para24_sww_alitruwittodayshow_240823z;Ali Truwit found purpose in the pool after her life changedz$md5:c16d7489e1516593de1cc5d3f39b9bdbNBCU-SPORTSgZd;qs@g  o3A20240823z0theplatform para24_sww_alitruwittodayshow_240823)r   r   r   r   r   r   r   r   r   r   r   zVhttps://www.nbc.com/quantum-leap/video/bens-first-leap-nbcs-quantum-leap/NBCE125189978TrN   only_matchingzThttps://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310zHhttps://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189a  eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1Yzg2YjdkYy04NDI3LTRjNDUtOGQwZi1iNDkzYmE3MmQwYjQiLCJuYmYiOjE1Nzg3MDM2MzEsImlzcyI6ImF1dGguYWRvYmUuY29tIiwiaWF0IjoxNTc4NzAzNjMxfQ.QQKIsBhAjGQTMdAqRTqhcz2Cddr4Y2hEjnSiOeKKki4nLrkDOsjQMmqeTR0hSRarraxH54wBgLvsxI7LHwKMvr7G8QpynNAxylHlQD3yhN9tFhxt4KR5wW3as02B-W2TznK9bhNWPKIyHND95Uo2Mi6rEQoq8tM9O09WPWaanE5BX_-r6Llr6dPq5F0Lpx2QOn2xYRb1T4nFxdFTNoss8GBds8OvChTiKpXMLHegLTc1OS4H_1a8tO_37jDwSdJuZ8iTyRLV4kZ2cpL6OL5JPMObD4-HQiec_dfcYgMKPiIfP9ZqdXpec2SVaCLsWEk86ZYvD97hLIQrK5rrKd1y-Ac                 (   |                      |                                          \  }}dt          j                            |          z   }|                     d|dt          j        |ddd          d          d	         d
         d         }|sh|                     ||          }| 	                    d|d|          d         t          j        
                    |          j                 d         d         }|d         }d|d          d| }|                     ||d          }t          |dt          hf          p|                    d          }i }	|                    d          rR|                     |d         |||                    d                    }
|                     ||d|
| j                  |	d<   |                     |||	          \  }}|                     |          }|                     |d         |           i t          |dt          ht,          fdt          ht,          fd t.          hfd!t.          hfdt0          hfd"d#t          ht,          t2          t,          fd$t          hfd%          |||||t5          d&|          gd'S )(Nhttpz$https://friendship.nbc.co/v2/graphqlaH  query bonanzaPage(
  $app: NBCUBrands! = nbc
  $name: String!
  $oneApp: Boolean
  $platform: SupportedPlatforms! = web
  $type: EntityPageType! = VIDEO
  $userId: String!
) {
  bonanzaPage(
    app: $app
    name: $name
    oneApp: $oneApp
    platform: $platform
    type: $type
    userId: $userId
  ) {
    metadata {
      ... on VideoPageData {
        description
        episodeNumber
        keywords
        locked
        mpxAccountId
        mpxGuid
        rating
        resourceId
        seasonNumber
        secondaryTitle
        seriesShortTitle
      }
    }
  }
}T0)r;   oneAppuserId)r.   	variables)r.   databonanzaPager   z<script>\s*PRELOAD\s*=
video datapagesbasempxGuidzNnzsPC/media/guid/mpxAccountIdr   Fr   r   secondaryTitlelocked
resourceIdratingnbcentertainmentrr   rj   r   r   r   r   keywords.seriesShortTitle)r   r   r   r   r   r   r   ThePlatform)r   r   rR   rj   r   )_match_valid_urlgroupsurllibparseunquote_download_jsonjsondumpsr   r   urlparsepathr   r"   r   r>   r   r   _SOFTWARE_STATEMENTrl   r   r   filterr   r   allr   )rI   rN   	permalinkrK   
video_datar   rJ   tpmr   r.   r   rR   rj   r   s                 r6   _real_extractzNBCIE._real_extract   s   "33C88??AA	8V\11)<<<	((2H B "Z%"!) )  E'E 'E ) ( (P Q(P %Q(&P '1Q(2
T  	X,,S(;;G**)7L !##)<#8#8#=#=#BDDJLLVXJ i(Nz.'ANNHNN11'851QQS7SE"233Wz~~FV7W7W>>(## 	W..<(%:>>(;S;SU UH 33X18T=UW WE&M "EEgxY^__66s;;k+6yIII
: -uf=,seV<#2[M"B"0;-!@&(9:#S3%fE-u5( (  
 
 "!0!I!I J
 
 
 	
r8   N)r   r   r   
_VALID_URL_TESTSr   r   rz   r8   r6   r   r      s       pJl
)
5
 D
   _	

 
 :
 

 F
 b
 j
 Q
 i
 
 I
 /
  JK!
" .#
$ !6 7'
 
 
, V
/ 6 S
)
5
 _
 a	

 a
 k
 R
 o
 w
 

 :
 
 
 I
 /
  +!
" #
$ <<!6 7'
 
 
, V
/ 8 O8RA%/T%%!S T
 
 V
! ( h  f 
 Z [QFd SS
 S
 S
 S
 S
r8   r   c                   f    e Zd ZdZdZedz   Zde dgZdddd	d
ddddg dd
dddddddgZd ZdS )NBCSportsVPlayerIEFzFhttps?://(?:vplayer\.nbcsports\.com|(?:www\.)?nbcsports\.com/vplayer)/z (?:[^/]+/)+(?P<id>[0-9a-zA-Z_]+)zF(?:iframe[^>]+|var video|div[^>]+data-(?:mpx-)?)[sS]rc\s?=\s?"(?P<url>z[^\"]+)zJhttps://vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/9CsDKds0kvHI9CsDKds0kvHIrU   z$md5:df390f70a9ba7c95ff1daace988f0d8dz3Tyler Kalinoski hits buzzer-beater to lift Davidsoni(U20150313r   g1Z4R@zre:^https?://.*\.jpg$)
r   r   r   r   r   r   r   r   chaptersr   rN   r   zPhttps://vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/PEgOtlNcC_y2Tr   z`https://www.nbcsports.com/vplayer/p/BxmELC/nbcsports/select/PHJSaFWbrTY9?form=html&autoPlay=truec                     |                      |          }|                     ||          }|                     d|d          }|                     |d          S )Nztp:releaseUrl="(.+?)"rN   r   )	_match_idr   _html_search_regex
url_result)rI   rN   rK   r   theplatform_urls        r6   r   z NBCSportsVPlayerIE._real_extract]  sU    >>#&&((h77112JGUZ[[>>>r8   N)	r   r   r   _WORKING_VALID_URL_BASEr   _EMBED_REGEXr   r   rz   r8   r6   r   r   A  s        H_O #FFJv^mvvvwL \ AJ#%%1
 
  b  r #F,? ? ? ? ?r8   r   c                   d    e Zd ZdZdZddddddd	d
g ddd
dddddddgZdddddddgZd ZdS )NBCSportsIEFzMhttps?://(?:www\.)?nbcsports\.com//?(?!vplayer/)(?:[^/]+/)+(?P<id>[0-9a-z-]+)zghttps://www.nbcsports.com/watch/nfl/profootballtalk/pft-pm/unpacking-addisons-reckless-driving-citationPHJSaFWbrTY9rU   z5Tom Izzo, Michigan St. has 'so much respect' for Dukez$md5:ecb459c9d59e0766ac9c7d5d0eda8113r   20150330i`Uzdhttps://hdliveextra-a.akamaihd.net/HD/image_sports/NBCU_Sports_Group_-_nbcsports/253/303/izzodps.jpgg\(@)
r   r   r   r   r   r   r   r   r   r   r   z_https://www.nbcsports.com/philadelphia/philadelphia-phillies/bruce-bochy-hector-neris-hes-idiotTr   zUhttps://www.nbcsports.com/boston/video/report-card-pats-secondary-no-match-josh-allenz_http://www.riderfans.com/forum/showthread.php?121827-Freeman&s=e98fa1ea6dc08e886b1678d35212494aln7x1qSThw4kflvz.PFT Live: New leader in the 'new-look' defenser   r   r   Invalid URLrN   r   skipc                     |                      |          }|                     ||          }|                     t                              |          d          S )NNBCSportsVPlayer)r   r   r   r   _extract_url)rI   rN   rK   r   s       r6   r   zNBCSportsIE._real_extract  sU    >>#&&((h77++G446HJ J 	Jr8   N)r   r   r   r  r   r   _WEBPAGE_TESTSr   rz   r8   r6   r  r  d  s        HaJ y NA%%#
 
 " q  g 'F2 q E
 

   NJ J J J Jr8   r  c                   :    e Zd ZdZdZddddddd	d
iddgZd ZdS )NBCSportsStreamIEFz4https?://stream\.nbcsports\.com/.+?\bpid=(?P<id>\d+)z4http://stream.nbcsports.com/nbcsn/generic?pid=206559206559rU   z&Amgen Tour of California Women's Recapz$md5:66520066b3b5281ada7698d0ea2aa894r   r   r   r   r   Tz"Requires Adobe Pass AuthenticationrN   r   r   r  c                    |                      |          }|                     d| d|          }|d         d         }|d         }d }dD ]8}|dz   }|                    |          p|                    |dz             }|r n	9|d	         }|                    d
          dk    p|                    d          dk    }	|                     d||d          }
|                     ||d|
d           }|                     d|t          j        d|dddd|d         t          j        |	                                          
                                t          j        |
	                                          
                                d	          	                                          d         }|                     ||d          }|||                    d          ||	dS )Nz.http://stream.nbcsports.com/data/live_sources_.jsonvideoSourcesr   r   )source
msl4source	iossourcehlsv4UrlAltottStreamUrltypelivestatusLive	nbcsportsro   z'https://token.playmakerservices.com/cdn	NBCSportsv1desktopakamai	sourceUrl)	requestorIdpidapplicationversionplatformcdnrN   tokenr   r   tokenizedUrlrU   r   )r   r   r   rR   is_live)r   r   r>   r   r   r   r   base64	b64encodeencodedecode_extract_m3u8_formats)rI   rN   rK   live_sourcevideo_sourcer   
source_urlkskr5  r   r2  tokenized_urlrR   s                 r6   r   zNBCSportsStreamIE._real_extract  s   >>#&&))LXLLL  #>215W%
? 	6 	6AUB%))"--M1A1A"u*1M1MJ  &n5J""6**f4\8H8H8R8RV\8\**;xLL''X{HdSS++54:**%#K0)%,,..99@@BB$.x/@/@AAHHJJ
' 
' 
 
 vxx ,   () ,,]HeLL&??=99
 
 	
r8   N)r   r   r   r  r   r   r   rz   r8   r6   r  r    sh        HHJE>A	
 
 T
 5  F&
 &
 &
 &
 &
r8   r  c                       e Zd ZdZdgZ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dddd d!d"dd#d$d%d&d'd(d)dd*d+d,dd-d.d/d0d1d2d)d3dd4d5d6dd7d8d9d:d;d<d=d3dd>d?d@dAd?d@gZdBdCddDdEd3dFgZdG ZdHS )I	NBCNewsIEzS(?x)https?://(?:www\.)?(?:nbcnews|today|msnbc)\.com/([^/]+/)*(?:.*-)?(?P<id>[^/?]+)z\<iframe[^>]+src=(["\'])(?P<url>(?:https?:)?//www\.nbcnews\.com/widget/video-embed/[^"\']+)\1zbhttp://www.nbcnews.com/watch/nbcnews-com/how-twitter-reacted-to-the-snowden-interview-269389891880 fb3dcd2d7b1dd9804305fa2fc95ab610269389891880rU   z,How Twitter Reacted To The Snowden Interviewz$md5:65a0bd5d76fe114f3c2727aa3a81fe64itS20140529g      G@zehttps://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/140529/p_tweet_snow_140529.jpg)r   r   r   r   r   r   r   r   rN   md5r   zZhttp://www.nbcnews.com/feature/dateline-full-episodes/full-episode-family-business-n285156 fdbf39ab73a72df5896b6234ff98518a529953347624zFULL EPISODE: Family Businessz$md5:757988edbaae9d7be1d585eb5d55cc04r  zThis page is unavailable.)rN   rG  r   r  zqhttp://www.nbcnews.com/nightly-news/video/nightly-news-with-brian-williams-full-broadcast-february-4-394064451844 40d0e48c68896359c80372306ece0fc3394064451844z<Nightly News with Brian Williams Full Broadcast (February 4)z$md5:1c10c1eccbe84a26e5debb4381e2d3c5iT20150205g     P@zbhttps://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/nn_netcast_150204.jpgzzhttp://www.nbcnews.com/business/autos/volkswagen-11-million-vehicles-could-have-suspect-software-emissions-scandal-n431456 ffb59bcf0733dc3c7f0ace907f5e3939n431456z/Volkswagen U.S. Chief:  We 'Totally Screwed Up'z$md5:d22d1281a24f22ea0880741bb4dd630120150922i-Vg     B@zdhttps://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/x_lon_vwhorn_150922.jpg)r   r   r   r   r   r   r   r   zehttp://www.today.com/video/see-the-aurora-borealis-from-space-in-stunning-new-nasa-video-669831235788 693d1fa21d23afcc9b04c66b227ed9ff669831235788z=See the aurora borealis from space in stunning new NASA videoz$md5:74752b7358afb99939c5f8bb2d1d04b120160420i]iWg     @Q@zthttps://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/201604/2016-04-20T11-35-09-133Z--1280x720.jpgr  z`http://www.msnbc.com/all-in-with-chris-hayes/watch/the-chaotic-gop-immigration-vote-314487875924 6d236bf4f3dddc226633ce6e2c3f814d314487875924z The chaotic GOP immigration votezThe Republican House votes on a border bill that has no chance of getting through the Senate or signed by the President and is drawing criticism from all sides.r   i*S20140802g     `@)r   r   r   r   r   r   r   r   zPhttp://www.nbcnews.com/watch/dateline/full-episode--deadly-betrayal-386250819952Tr   z6http://www.nbcnews.com/widget/video-embed/701714499682zPhttp://www.vulture.com/2016/06/letterman-couldnt-care-less-about-late-night.htmlx_dtl_oa_LettermanliftPR_160608zDavid Letterman: A Previewr  r  c                    |                      |          }|                     ||          }|                     ||          d         d         }t          |d t                    }|s |d         d         d         d         d         }|d	         d
         }g }|                    dg           D ]}|                    d          }	|	sd|	v rt          |	ddi          }	|                    d          }
|
dk    r/|                    |                     |	|dd|
d                     {t          |                    d          d          }|
                    t          |
|          |	t          |                    d                    t          |                    d                    |dd           
i }|                    d          }|rE|                                D ]0}|s|                    dg           
                    d|i           1||t          |d           t          |d           t          |                    d                    t          |                    d                     ||d!S )"NpropsinitialStatec                     | d         d         S )Nvideocurrentrz   xs    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>4  s    QwZ	-B r8   articlecontentr   primaryMediar[  headlineprimaryvideoAssets	publicUrlz://link.theplatform.com/r+   redirectM3UrU   m3u8_nativeFrW   bitrate  widthheight)	format_idrN   rk  rl  tbrr   closedCaptioningenrN   c                     | d         d         S )Nr   rc  rz   r]  s    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>]  s    =9I)9T r8   c                 *    | d         d         d         S )NprimaryImagerN   rc  rz   r]  s    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>^  s    q7H7OPY7Z r8   r   datePublished)r   r   r   r   r   r   rR   rj   )r   r   _search_nextjs_datar   dictr>   r   extendr:  r   appendr   values
setdefaultr   r   )rI   rN   rK   r   r   r   r   rR   va
public_urlrm  rn  rj   closed_captioningcc_urls                  r6   r   zNBCNewsIE._real_extract/  s   >>#&&((h77''::7CNST#B#BDII
 	Pi3A6~FwOJ:&y1..33 	 	B,,J )Z77-j8Z:PQQ
x((IE!!t99%%U  :  4  4 5 5 5 bffY//66CNN*9c::!$RVVG__55%bffX&6&677      	&NN+=>> 	+2244   $$T2..5567    
 ":/T/TUU -Z-Z[[&z~~j'A'ABB*:>>/+J+JKK"	
 	
 		
r8   N)r   r   r   r   r  r   r  r   rz   r8   r6   rB  rB    s       gJstL t1 CA#% A	
 	
  l1 4A	
 
 ,
 
 C1 SA#%}	
 	
  L1FA%#	
 	
  w1 TA%# P	
 	
   r1 7 ~/#%	
 	
   b 
 H aTFl b31
 

   N4
 4
 4
 4
 4
r8   rB  c                   H    e Zd ZdZdZdddddddd	d
ddddddddgZd ZdS )NBCOlympicsIEnbcolympicsz9https?://www\.nbcolympics\.com/videos?/(?P<id>[0-9a-z-]+)zUhttps://www.nbcolympics.com/videos/watch-final-minutes-team-usas-mens-basketball-goldSAwGfPlQ1q01rU   z2watch-final-minutes-team-usas-mens-basketball-goldz;Watch the final minutes of Team USA's men's basketball goldz$md5:f704f591217305c9559b23b877aa8d31r   g+0x@r   i(0f20240811)r   r   r   r   r   r   r   r   r   r   r   r   zVhttp://www.nbcolympics.com/video/justin-roses-son-leo-was-tears-after-his-dad-won-goldTr   c                 |   |                      |          }|                     ||          }	 |                     |                     d|d          |          }|d         d         }|                    dd          }n)# t
          $ r |                     d|dd	
          }Y nw xY wd|t          j                    |dS )Nz1jQuery\.extend\(Drupal\.settings\s*,\s*({.+?})\);zdrupal settingsvod
iframe_urlzvplayer.nbcolympics.comzplayer.theplatform.comz-([\"'])embedUrl\1: *([\"'])(?P<embedUrl>.+)\2zembedding URLembedUrl)rc   url_transparent)_typerN   ie_keyr   )r   r   r   _search_regexreplacer   r   r  )rI   rN   r   r   drupal_settingsr  r  s          r6   r   zNBCOlympicsIE._real_extract  s    ^^C((
((j99	<"..t/A/AD*0, 0,-79 9O )/=J(00)+CE EOO! 	< 	< 	<"00@
 1 < <OOO	< '"#*,,$	
 
 	
s   AA= =#B#"B#N)r   r   r   IE_NAMEr   r   r   rz   r8   r6   r  r  f  s        GMJ g NTAV%/#%
 
 " h !F*
 
 
 
 
r8   r  c                   X    e Zd ZdZdZdZdddddd	d
didddddddd	d
diddgZd ZdS )NBCOlympicsStreamIEFznbcolympics:streamz4https?://stream\.nbcolympics\.com/(?P<id>[0-9a-z-]+)zTokenized m3u8 source URLz;https://stream.nbcolympics.com/womens-soccer-group-round-112019740rU   z^re:Women's Group Stage - Netherlands vs\. Brazil [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$r  r   r2   
Livestream)noterN   r   r   r  zPlain m3u8 source URLz`https://stream.nbcolympics.com/gymnastics-event-finals-mens-floor-pommel-horse-womens-vault-bars2021729zhre:Event Finals: M Floor, W Vault, M Pommel, W Uneven Bars [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$c                    |                      |          }|                     ||          }|                     d|d          }|                     d| d|d          d         }|d         }dd	d
                    |                    d                    }|                     d| d|d          d         d         d         d         d         d         }|                    d          rM|                     |                    dd          t          j        dd|d                   ||                    dd                    }	|                     |||                    dd          |	d           }
|                     d|dt          j
        ddd |d!dt          j        |	                                                                          t          j        |
                                                                          |d"d#
                                          $          d          d         d%         }|                     ||d&|'          }|D ]}d(g d)i|d*<   |||||d+S ),Nzpid\s*=\s*(\d+);r-  z0http://stream.nbcolympics.com/data/event_config_r  zDownloading event configeventConfig
eventTitleTF)r#  replayeventStatusz,https://api-leap.nbcsports.com/feeds/assets/zG?application=NBCOlympics&platform=desktop&format=nbc-player&env=stagingzDownloading leap configr  r   
cdnSourcesrc  r+  cdnTokenr   NBCOlympicsz	[^\w\d ]+ro   ratingIdzNO VALUEr,  z%https://tokens.playmakerservices.com/zRetrieving tokenized URLr'  z
adobe-passr*  r)  r(  )
r.  zauthentication-typer1  r-  r0  r,  r   r2  rN   r/  r3  r4  rU   )r#  ffmpeg_args)z	-seekabler   z-http_seekabler   z-icyr   downloader_options)r   r   r   rR   r5  )r   r   r  r   r>   r   r_   subr   r   r   r6  r7  r8  r9  r:  )rI   rN   r   r   r-  event_configr   r5  r=  ap_resourcemedia_tokenrR   r]   s                r6   r   z!NBCOlympicsStreamIE._real_extract  s   ^^C((
((j99  !4guEE**IsIII+- --:< \*51155l6F6F}6U6UVV(( H3  H  H  H*
 
   *+ ,56 789 :EF

 J'' 	+11  }==|Rl)CDDc  Z88: :K
 11#sL<L<L]\i<j<jlwy}~~K,,7>XZ#.+7# )#0"("2;3E3E3G3G"H"H"O"O"Q"Q#-k.@.@.B.BCCJJLL%#! !   688 -     *+J  ,,Ze',RR 	n 	nA (56l6l6l&mA"## $
 
 	
r8   N)r   r   r   r  r  r   r   r   rz   r8   r6   r  r    s        H"GHJ+Lv
 
 V
   (q A
 
 V
  F45
 5
 5
 5
 5
r8   r  c                       e Zd Zd                     eej        d                    Zde dZ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idd d!d"dd#d$d%d&d'd(d)d*d
d+gZ	d,d-d.d/d0d1Z
d2 Zd3S )4NBCStationsIE|)
nbcbayarea	nbcboston
nbcchicagonbcconnecticutnbcdfwnbclosangelesnbcmiami
nbcnewyorknbcphiladelphianbcsandiegonbcwashingtonnecntelemundo52telemundoarizonatelemundochicagotelemundonuevainglaterrazhttps?://(?:www\.)?(?P<site>z/)\.com/(?:[^/?#]+/)*(?P<id>[^/?#]+)/?(?:$|[#?])zqhttps://www.nbclosangeles.com/news/local/large-structure-fire-in-downtown-la-prompts-smoke-odor-advisory/2968618/2968618rU   z?Large Structure Fire in Downtown LA Prompts Smoke Odor Advisoryz$md5:417ed3c2d91fe9d301e6db7b0942f182gF \@ic20220822zNBC 4KNBCr  )
r   r   r   r   r   r   r   r   
channel_idchannelzSite changedr  zhhttps://www.telemundoarizona.com/responde/huracan-complica-reembolso-para-televidente-de-tucson/2247002/2247002u=   Huracán complica que televidente de Tucson reciba  reembolsoz$md5:af298dc73aab74d4fca6abfb12acb6cfgEe@ib20220819zTelemundo ArizonaKTAZr  r   r2   r   zchttps://www.nbcboston.com/weather/video-weather/highs-near-freezing-in-boston-on-wednesday/2961135/ 9bf8c41dc7abbb75b1a44f1491a4cc852961135z*Highs Near Freezing in Boston on Wednesdayz$md5:3ec486609a926c99f00a3512e6c0e85bg rhum@i0c20230201ro   WBTSr  rF  19201280960640416)1080720540360234c                 D
   |                      |                              dd          \  }}|                     ||          }|                     d|d|          }|                    d          pd}t          |d          }|                     d|d	|i t          
          }|                    |                     d|d|i t          
                     |st          dd          i g }
}	t          |                    d                    dk    }dd|t          |dd          dddd|rdnddddd }|rt          |d!d"#          }| d$|	d%<   nbt          |d&d"#          }t          |d'd(          }|r| 
                    d)|d*d"+          }nt          |d,d"#          }t          |d-d"#          }|rt          |          }| 
                    d.t          |          d/d           }|
                    ||t          | j                            |                    t          |          d0| d1           |	                    |                    d%          pt          |d2d"#          t          |d3d4d5          pt          t          |d6                    t!          |          d7           d }|rH|rF|                     d8| d9| |d:||;          }t%          |t&          j        j        j                  sd }||                     |t0                    ni }|.|                    |                     d<t0                              ng D ]/}t7          t9          |                    d=          d>          d?          |	d@<   |                    dA          }t;          |                    dB          t          |                    }|dCk    rL|                     ||dDdE||dFG          \  }}|
                    |           |                      ||H           |r^|
                    |dI| |t          |                    dJ                    t          |                    d/                    dK           1|
s| !                    dLd           nS|rQ	 | "                    tG          |
dM         dN                   |dOP           n# t          $ r tI          |Q          w xY w|||                    dR          |                    dS          |
||dT|	S )UNsiter   z1(?:<script>\s*var\s+nbc\s*=|Object\.assign\(nbc,)zNBC JSON datapdkAcctYh1nAC)r[  fwSSIDzdata-videos="\[r   )defaultrp   zdata-meta="r   z"No video metadata found in webpageTrB   mpx_is_livestreamr   z0MPEG-DASH none,M3U none,MPEG-DASH none,MPEG4,MP3r(   )r[  fwNetworkID382114)r  ots_desktop_htmlfalser  r  LIVEz	on-demandscriptz2.0z	PDK 6.1.3)rR   r+   fwsitesectionr  pprofile	sensitivewhmodevpaidschemasdk)N)r[  meta)
mpx_m3upidmpx_pidpid_streaming_web_mediumF)get_allz livestreamr   )r  )pid_streaming_web_highr  date_stringdate_gmtzdatetime="([^"]+)"zdate stringr   )	dataLayeradobe)prop70eVar70eVar59)r  mp4_urlz
\d+-(\d+)prl  zhttp-)rN   r   rk  rl  rm  )r  )Nr  )contenttitler   prop22summaryexcerptvideo_hero_text)r  r  )r   r   r   r'   r   zDownloading SMIL data)r  r.   rY   z.//videodurmsrj  r   srcr"  r2   rU   rV   zNo HLS formats found)rX   rY   r#  errnoter   zhttps-rk  )rN   rm  r   rk  rl  z!No video content found in webpager   rN   zChecking live status)r  )rK   callLetterson_air_name)r   r  r  r   rR   rj   r5  )%r   rc   r   r   r>   r"   r   updater   r   r  r   r   rx  _RESOLUTIONSr   r   rD   
isinstancexmletreeElementTreeElement_parse_smil_subtitlesr   findall	_xpath_nsr   r   r   re   rw  r   raise_no_formats_request_webpager
   r   )rI   rN   r  rK   r   nbc_datapdk_acctfw_ssidr   inforR   r5  r.   	player_idr  	video_urlr   rl  rL   rj   r[  video_src_urlfmtssubss                           r6   r   zNBCStationsIE._real_extract1  sd    11#66<<VTJJ((h77$$@'?\df f<<	**6hx)<==&&x^j ' l l
$++GZ2Xd , f f 	g 	g 	g 	V !EPTUUUUBgjnn-@AABBaGI$'2JT\]]]* %6FF;
 
  $	$Z 2FOTV V VI&333DMM %Z 2R[`b b bI 'z=*MMK e"00);U 1 T T +T^ce e e %Z1WafgggI 	#I..++M<	;R;RT\fj+kk$():)>)>v)F)FGG)&11!.       KK#00 gL LW`e5g 5g 5g !Y	CTUU T!,x9Q"R"RSS.{;;      	 	%%H(HHYHH(,E & J JD dCI$9$ABB DHDTD..tZ@@@Z\	MQM]T\\$..Z"H"HIIIce 	 	E,Z		%8H8H$-O-OQUVVD!IIe,,Muyy00-:V:VWWWCf}}!EE!8UE *@ F B B
d t$$$%%d9%==== (!/#(7););<<)%))H*=*=>>        	4!!"EPT!UUUU 	44%%
5 122HCY & [ [ [ [! 4 4 4!733334 ",,}55 ]33"	
 	
 	
 		
s    1S S-N)r   r   r   joinmapr_   escape
_DOMAIN_REr   r   r  r   rz   r8   r6   r  r    sG       ##bi *    J
 mlllJ CVA#% &
 
    zTA#%+ )
 
 V
 & u1AA#% "
 
	 A0Ff  Lt
 t
 t
 t
 t
r8   r  c                   *   e Zd ZdZ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ddddd d!d"d#gd$d%d&d'id(d)i dd*dddd+d	d,dd-dd.dd/dd0dd1dddd+dd2dd3d4d5ddd6d7d8d9d:d#gd%d;d&d'id<d=d>i dd?dddd@d	dAddBddCddDdd1dd1ddEdd@ddFddGd4dHddd6d7d8d9d:dIgg dJd;d&d'id<d=dKi ddLddddMd	dNddOddPddQddRddddEddSddTddUddd6d7ddVd!dIgd$g dWid&d'id(dXdYdZgZd[ Zd\S )]	BravoTVIEzGhttps?://(?:www\.)?(?:bravotv|oxygen)\.com/(?:[^/?#]+/)+(?P<id>[^/?#]+)z]https://www.bravotv.com/top-chef/season-16/episode-15/videos/the-top-chef-season-16-winner-isr   3923059r   rU   r   z#The Top Chef Season 16 Winner Is...r   z the-top-chef-season-16-winner-isr   z)Find out who takes the title of Top Chef!r   20190315r   il\r      r      r   zTop Chefr   Finaler      r   z	Season 16r   zre:^https://.+\.jpgr   z	NBCU-BRAVr   SerieszSeries/Top Chefr   zcount:10r   r2   r   zChttps://www.bravotv.com/top-chef/season-20/episode-1/london-calling
9000234570zLondon Callingzlondon-callingz$md5:5af95a8cbac1856bd10e7562f86bb75920230310i
d   r   i  z	Season 20r   zcount:7r   r   r   r   	NBCU-MPAT)r   r   r   -This video requires AdobePass MSO credentialsr  z?https://www.oxygen.com/in-ice-cold-blood/season-1/closing-night3692045zClosing Nightzclosing-nightz$md5:c8a5bb523c8ef381f3328c6d9f1e463220230126iczIn Ice Cold BloodiE
  zSeason 1zcount:6zSeries/In Ice Cold Blood)ice-tin ice cold bloodlaw and orderoxygen
true crimezxhttps://www.oxygen.com/in-ice-cold-blood/season-2/episode-16/videos/handling-the-horwitz-house-after-the-murder-season-23974019zC'Handling The Horwitz House After The Murder (Season 2, Episode 16)z4handling-the-horwitz-house-after-the-murder-season-2z$md5:f9d638dd6946a1c1c0533a9c6100eae520190618i7]r	   zMother Vs SonD   r   zNBCU-OXY)r'  r&  r(  r*  r)  z@https://www.bravotv.com/below-deck/season-3/ep-14-reunion-part-1Tr   c                 X    |                      |          }|                     ||          S r   r   r   rI   rN   r   s      r6   r   zBravoTVIE._real_extract  s)    ^^C((
''Z888r8   Nr   r   r   r   r   r   rz   r8   r6   r  r    sW       [Jn
)
5
 :
 <	

 F
 :
 
 R
 b
 j
 x
 
 k
 /
 
  8%67!
" J#
& #F++ . U
,
5
 %
 *	

 A
 :
 
 R
 a
 j
 '
 
 k
 	
 /
  !
" .#
$ $,-)
 
 
, #F+?3 6 Q
)
5
 _
 /	

 A
 :
 
 Q
 a
 )
 
 
 j
 	
 /
  !
" .#
$ $56[[[)
 
 
, #F+?3 6 J
)
5
 [
 P	

 A
 :
 
 Q
 b
 )
 
 
 j
 /
 
  
!
" 56#
$ [[[%
 
( #F+- 0 R CdFL9 9 9 9 9r8   r  c                   d   e Zd ZdZ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ddddd d!d"d#d$d%gd&d'gd(d)d*id+d,i dd-dddd.d	d/dd0dd1dd2ddd3d4d5d6d7d5d8d9d7d8d:d;d7d:d<d=d7d<d>d?d7d>d2d@d7gddddddddddddAddBd!dCd$d%gd&dDgdEd)d*idFdGgZdH ZdIS )JSyfyIEzchttps?://(?:www\.)?syfy\.com/[^/?#]+/(?:season-\d+/episode-\d+/(?:videos/)?|videos/)(?P<id>[^/?#]+)zBhttps://www.syfy.com/face-off/season-13/episode-10/videos/keyed-upr   3774403r   rU   r   zkeyed-upr   zKeyed Upr   z$md5:feafd15bee449f212dcd3065bbe9a755r   r   r      r   z$re:https://www\.syfy\.com/.+/.+\.jpgr   zFace Offr   z	Season 13r      r   z Through the Looking Glass Part 2r   
   r   ij[r   20180808r   Excerptr   r"  zSeries/Face Offzcount:15ztheplatform 3774403)r   r   r   r   r2   r   zShttps://www.syfy.com/face-off/season-13/episode-10/through-the-looking-glass-part-23772391z through-the-looking-glass-part-2zThrough the Looking Glass Pt.2z$md5:90bd5dcbf1059fe3296c263599af41d2r   i'
  r   g        g     8@z<Untitled Chapter 1>)
start_timeend_timer   g|?5C@z<Untitled Chapter 2>g     @z<Untitled Chapter 3>g     8@z<Untitled Chapter 4>gw@z<Untitled Chapter 5>z<Untitled Chapter 6>igc20230101r   ztheplatform 3772391)r   r   r   r   r#  r  c                 \    |                      |          }|                     ||d          S )Nr   )r   r/  r0  s      r6   r   zSyfyIE._real_extractR  s.    ^^C((
''ZM'RRRr8   Nr1  rz   r8   r6   r3  r3    s       wJS
)
5
 *
 Z	

 A
 
 
 @
 j
 k
 R
 9
 b
 
 :
  )!
" #
$ --!6 7)
 
 
, #F+1 4 e
)
5
 <
 5	

 A
 
 
 @
 I_``(-8Ndee(0fOeff(.FMcdd(.HOeff(0dMcddf
 j
  k!
" R#
$ 9%
& b'
( )
* :+
, .-
. $,-!6 75
 
 
8 #F+??   39FvS S S S Sr8   r3  )6r6  r   r_   urllib.parser   xml.etree.ElementTreer   	adobepassr   commonr   theplatformr   r   r   
networkingr
   utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    utils.traversalr!   r"   r$   r   r   r  r  rB  r  r  r  r  r3  rz   r8   r6   <module>rG     s     				         " " " " " " ! ! ! ! ! ! E E E E E E E E E E $ $ $ $ $ $                                               0 4 3 3 3 3 3 3 3l
 l
 l
 l
 l
* l
 l
 l
^i
 i
 i
 i
 i
 i
 i
 i
X ?  ?  ?  ?  ?  ?  ?  ?F*J *J *J *J *J- *J *J *JZ8
 8
 8
 8
 8
 8
 8
 8
vW
 W
 W
 W
 W
 W
 W
 W
t0
 0
 0
 0
 0
M 0
 0
 0
fS
 S
 S
 S
 S
+ S
 S
 S
lv
 v
 v
 v
 v
M v
 v
 v
rj9 j9 j9 j9 j9" j9 j9 j9Z?S ?S ?S ?S ?S ?S ?S ?S ?S ?Sr8   