
    yf                     d   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m	Z	 ddl
m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!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*y)    N   )InfoExtractor)ThePlatformIE
default_ns)AdobePassIE   )compat_urllib_parse_unquote)HEADRequest)ExtractorErrorRegexNotFoundErrorUserNotLive
clean_htmldetermine_extfloat_or_noneint_or_nonemimetype2extparse_age_limitparse_duration
remove_endsmuggle_urltraverse_objtry_getunescapeHTMLunified_timestampupdate_url_queryurl_basenamec                      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#gd$d%id&d'id(d)d*dd+d,d-d.dd/d0d1d2d3dd4d5d6d7dd/d0d1d8i dd9dddd:dd:dd;dd<dd=dd>d	d?dddd@ddAddBddCd d!ddd&d'id(dDi ddEddddFd	dGddddHddIdd;ddFdd;ddJdg ddKddLddMdNdOd d!dPgdQdRd&d'id(dSdTdUdVdTdUgZdW ZyX)YNBCIEzchttps?(?P<permalink>://(?:www\.)?nbc\.com/(?:classic-tv/)?[^/]+/video/[^/]+/(?P<id>(?:NBCE|n)?\d+))z[http://www.nbc.com/the-tonight-show/video/jimmy-fallon-surprises-fans-at-ben-jerrys/2848237id2848237extmp4titlez,Jimmy Fallon Surprises Fans at Ben & Jerry'sdescriptionzJimmy gives out free scoops of his new "Tonight Dough" ice cream flavor by surprising customers at the Ben & Jerry's scoop shop.	timestampiFTupload_date20150218uploaderzNBCU-COMepisodeepisode_numberV   seasonzSeason 2season_numberr   serieszTonight Show: Jimmy Fallondurationg     m@chapterszcount:1tagszcount:4	thumbnailzre:https?://.+\.jpg
categoriesz-Series/The Tonight Show Starring Jimmy Fallon
media_typezFull Episodeskip_downloadm3u8url	info_dictparamszEhttp://www.nbc.com/saturday-night-live/video/star-wars-teaser/28328212832821zStar Wars Teaserz$md5:0b40f9cbde5b671a7ff62fceccc4f442iT20141206)r   r!   r#   r$   r%   r&   r(   zpage not found)r8   r9   skipz,http://www.nbc.com/Kings/video/goliath/n1806 101528f5a9e8127b107e98c5e6ce4638GoliathzWhen an unknown soldier saves the life of the King's son in battle, he's thrust into the limelight and politics of the kingdom.ipI20090315zhttps://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The Golden Globe AwardszZOprah Winfrey receives the Cecil B. de Mille Award at the 75th Annual Golden Globe Awards.20180107iQZg     Ё@zcount:8zVhttps://www.nbc.com/quantum-leap/video/bens-first-leap-nbcs-quantum-leap/NBCE125189978NBCE125189978z%Ben's First Leap | NBC's Quantum Leapz$md5:a82762449b7ec4bb83291a7b355ebf8ezQuantum LeapzSeason 1gxEe@i-c20220923zcount:10	age_limitr   zSeries/Quantum Leap 2022	Highlight)r3   r4   zThttps://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310Tr8   only_matchingzHhttps://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189c                    | j                  |      j                         \  }}dt        |      z   }| j                  d|dt	        j
                  |ddd      d      d	   d
   d   }dddd}|d   }d|j                  d      xs dd|}| j                  ||      }|j                  d      xs |j                  d      }|j                  d      rM| j                  |j                  d      xs d|||j                  d            }	| j                  ||d|	      |d<   t        t        d|j                  d      xs dd||      ddi      }
|j                  d      }||j                  d      }t        |j                  d            }|t        |j                  d             }|j                  d      }|t        |d!        t        |j                  d"            }|t        |j                  d#            }|j                  d$      }||j                  d%      }|j                  d&      }|t        |      d'k(  r|j                  d&      }d(t        |      ||||d)|||||
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)nameoneAppuserId)query	variables)rP   databonanzaPagemetadatatruem3uHLSServiceSecure)mbrmanifestswitchmpxGuidzNnzsPC/media/guid/mpxAccountId
2410887629/r#   secondaryTitlelocked
resourceIdnbcentertainmentratingauthz0http://link.theplatform.com/s/NnzsPC/media/guid/force_smil_urlr$   episodeNumberznbcu$airOrderc                     | d   d   d   S )Nratingsr   rc    xs    6/usr/lib/python3/dist-packages/yt_dlp/extractor/nbc.py<lambda>z%NBCIE._real_extract.<locals>.<lambda>   s    1Y<?8#<     seasonNumberznbcu$seasonNumberseriesShortTitleznbcu$seriesShortTitlekeywordsr   url_transparentThePlatform)_typerF   r$   r)   r*   r   ie_keyr-   r.   r1   r#   r8   )_match_valid_urlgroupsr	   _download_jsonjsondumpsget_download_theplatform_metadata_get_mvpd_resource_extract_mvpd_authr   r   r   r   lenr   )selfr8   	permalinkvideo_id
video_datarP   tp_pathtpmr#   resourcetheplatform_urlr$   r*   rc   r-   r.   r1   s                    rl   _real_extractzNBCIE._real_extract   s   "33C8??A	88CC	((2H B "ZZ%"!) E'E ) (P Q(P %Q(&P '1Q(2
T (

 i(/9~~n/M/]Q]/]_gh11'8D DJNN3C$D>>(#..|,B0Bx!9;H !33X18=E&M%&6GQ~~VdGeGuiuGuw  A'%t,.
 !nn]3''-0K$Z^^O%DE!()ABN)>C<=#JNN>$BC '0C(DEM 23>WW45F~~j)<3t9>77:&D '(0&,#*"
 	
rn   N__name__
__module____qualname__
_VALID_URL_TESTSr   ri   rn   rl   r   r   !   s[   wJ qiu H    c	
 Z z J J !" *   6 E I 	  3!" NO#$ n%*  -	
6 [+E')& %	
 B8"  c')& %	
  Wiu c e	
 !! +   3 { J z Z E 	 3  I!&  +	
6 lou B E	
 J . *   D !! G B Z z 
  Q!" 3#$  ::)',  1	
: j!	
 ^!	
_tFl`
rn   r   c                   ^    e Zd ZdZedz   Zdez  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y)NBCSportsVPlayerIEzFhttps?://(?:vplayer\.nbcsports\.com|(?:www\.)?nbcsports\.com/vplayer)/z (?:[^/]+/)+(?P<id>[0-9a-zA-Z_]+)zO(?:iframe[^>]+|var video|div[^>]+data-(?:mpx-)?)[sS]rc\s?=\s?"(?P<url>%s[^\"]+)zJhttps://vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/9CsDKds0kvHI9CsDKds0kvHIr"   z$md5:df390f70a9ba7c95ff1daace988f0d8dz3Tyler Kalinoski hits buzzer-beater to lift Davidsoni(U20150313NBCU-SPORTSg1Z4R@re:^https?://.*\.jpg$)
r   r!   r$   r#   r%   r&   r(   r/   r0   r2   r8   r9   zPhttps://vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/PEgOtlNcC_y2TrH   z`https://www.nbcsports.com/vplayer/p/BxmELC/nbcsports/select/PHJSaFWbrTY9?form=html&autoPlay=truec                     | j                  |      }| j                  ||      }| j                  d|d      }| j                  |d      S )Nztp:releaseUrl="(.+?)"r8   rs   )	_match_id_download_webpage_html_search_regex
url_result)r   r8   r   webpager   s        rl   r   z NBCSportsVPlayerIE._real_extract  sI    >>#&((h7112JGUZ[>>rn   N)r   r   r   _VALID_URL_BASEr   _EMBED_REGEXr   r   ri   rn   rl   r   r      sv    _O #FFJfixxyL \ AJ#%%1
 b r#F,?rn   r   c                   H    e 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 Zy)NBCSportsIEzMhttps?://(?:www\.)?nbcsports\.com//?(?!vplayer/)(?:[^/]+/)+(?P<id>[0-9a-z-]+)zghttps://www.nbcsports.com/watch/nfl/profootballtalk/pft-pm/unpacking-addisons-reckless-driving-citationPHJSaFWbrTY9r"   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%   r0   r2   r/   r   z_https://www.nbcsports.com/philadelphia/philadelphia-phillies/bruce-bochy-hector-neris-hes-idiotTrH   zUhttps://www.nbcsports.com/boston/video/report-card-pats-secondary-no-match-josh-allenc                     | j                  |      }| j                  ||      }| j                  t        j	                  |      d      S )NNBCSportsVPlayer)r   r   r   r   _extract_url)r   r8   r   r   s       rl   r   zNBCSportsIE._real_extract;  sF    >>#&((h7++G46HJ 	Jrn   Nr   ri   rn   rl   r   r     s^    aJ y NA%%#
" q g'F2Jrn   r   c                   2    e Zd ZdZdddddddd	id
dZd Zy)NBCSportsStreamIEz4https?://stream\.nbcsports\.com/.+?\bpid=(?P<id>\d+)z4http://stream.nbcsports.com/nbcsn/generic?pid=206559206559r"   z&Amgen Tour of California Women's Recapz$md5:66520066b3b5281ada7698d0ea2aa894r   r!   r#   r$   r5   Tz"Requires Adobe Pass Authentication)r8   r9   r:   r=   c                 "   | j                  |      }| j                  d|z  |      }|d   d   }|d   }d }dD ]2  }|dz   }|j                  |      xs |j                  |dz         }|s2 n |d   }|j                  d	      d
k(  xs |j                  d      dk(  }	| j                  d||d      }
| j	                  ||d|
      }| j                  d|t        j                  d|dddd|d   t        j                  |j                               j                         t        j                  |
j                               j                         d	      j                               d   }| j                  ||d      }|||j                  d      ||	dS )Nz5http://stream.nbcsports.com/data/live_sources_%s.jsonvideoSourcesr   r#   )source
msl4source	iossourcehlsv4UrlAltottStreamUrltypelivestatusLive	nbcsports z'https://token.playmakerservices.com/cdn	NBCSportsv1desktopakamai	sourceUrl)	requestorIdpidapplicationversionplatformcdnr8   tokenra   rR   tokenizedUrlr"   r$   )r   r#   r$   formatsis_live)r   rx   r{   r}   r~   ry   rz   base64	b64encodeencodedecode_extract_m3u8_formats)r   r8   r   live_sourcevideo_sourcer#   
source_urlkskr   r   r   tokenized_urlr   s                 rl   r   zNBCSportsStreamIE._real_extractS  s   >>#&))ChN #>215W%
? 	6AUB%))"-M1A1A"u*1MJ		6 &n5J""6*f4\8H8H8RV\8\**;xL''X{HM++54::**%#K0))%,,.9@@B$..x/@AHHJ
' 
 vx ,  () ,,]HeL&??=9
 	
rn   N)r   r   r   r   _TESTr   ri   rn   rl   r   r   B  s8    HJE>A	
 T
 5E&
rn   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)dd3d4d5dd6d7d8d9d:d;d<dd=d>d?d@d>d?gZdA ZyB)C	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269389891880r"   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/   r2   r8   md5r9   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.r8   r   r9   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/   r2   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.jpgz`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$   r2   r%   r&   r/   zPhttp://www.nbcnews.com/watch/dateline/full-episode--deadly-betrayal-386250819952TrH   z6http://www.nbcnews.com/widget/video-embed/701714499682c                    | j                  |      }| j                  ||      }| j                  ||      d   d   }t        |d t              }|s|d   d   d   d   d   }|d	   d
   }g }|j                  dg       D ]  }|j                  d      }	|	sd|	v rt        |	ddi      }	|j                  d      }
|
dk(  r'|j                  | j                  |	|dd|
d             ft        |j                  d      d      }|r|
d|z  z  }
|j                  |
|	t        |j                  d            t        |j                  d            |dd        i }|j                  d      }|r;|j                         D ](  }|s|j                  dg       j                  d|i       * ||t        |d       t        |d       t        |j                  d             t        |j                  d!            ||d"S )#NpropsinitialStatec                     | d   d   S )Nvideocurrentri   rj   s    rl   rm   z)NBCNewsIE._real_extract.<locals>.<lambda>  s    QwZ	-B rn   articlecontentr   primaryMediar   headlineprimaryvideoAssets	publicUrlz://link.theplatform.com/formatredirectM3Ur"   m3u8_nativeF)m3u8_idfatalbitrate  z-%dwidthheight)	format_idr8   r   r   tbrr!   closedCaptioningenr8   c                     | d   d   S )Nr$   r   ri   rj   s    rl   rm   z)NBCNewsIE._real_extract.<locals>.<lambda>  s    =9I)9T rn   c                     | d   d   d   S )NprimaryImager8   r   ri   rj   s    rl   rm   z)NBCNewsIE._real_extract.<locals>.<lambda>  s    q7H7OPY7Z rn   r/   datePublished)r   r#   r$   r2   r/   r%   r   	subtitles)r   r   _search_nextjs_datar   dictr{   r   extendr   r   appendvalues
setdefaultr   r   )r   r8   r   r   rR   r   r#   r   va
public_urlr  r  r	  closed_captioningcc_urls                  rl   r   zNBCNewsIE._real_extract  s    >>#&((h7'':7CNST#BDI
i3A6~FwOJ:&y1..3 	B,J)Z7-j8Z:PQ
x(IE!t99%%U  :  4 5 bffY/6CUS[(	NN&!$RVVG_5%bffX&67 	0 	&NN+=>+224 $$T2.5567  ":/TU -Z[&z~~j'AB*:>>/+JK"	
 		
rn   N)r   r   r   r   r   r   r   ri   rn   rl   r   r   |  sD   gJstL x5$GE')  E		
 p5$8E	 0
	
 G5$WE')" B		
 P5JE)'  D		
 {5$XE)'  T		
 v5$;  B5')!		
 f!	
 L!	
m[Fz6
rn   r   c                   :    e Zd ZdZdZddddddd	d
dddddZd Zy)NBCOlympicsIEnbcolympicsz9https?://www\.nbcolympics\.com/videos?/(?P<id>[0-9a-z-]+)zVhttp://www.nbcolympics.com/video/justin-roses-son-leo-was-tears-after-his-dad-won-gold 54fecf846d05429fbaa18af557ee523aWjTBzDXx5AUqz5justin-roses-son-leo-was-tears-after-his-dad-won-goldr"   z2Rose's son Leo was in tears after his dad won goldz}Olympic gold medalist Justin Rose gets emotional talking to the impact his win in men's golf has already had on his children.i߱W20160815r   )r   
display_idr!   r#   r$   r%   r&   r(   z404 Not Foundr   c                 >   | j                  |      }| j                  ||      }	 | j                  | j                  d|d      |      }|d   d   }|j	                  dd      }d|t        j                         |dS # t
        $ r | j                  d|dd	
      }Y 9w xY w)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)grouprr   )rt   r8   ru   r  )r   r   _parse_json_search_regexreplacer   r   ru   )r   r8   r  r   drupal_settingsr  r   s          rl   r   zNBCOlympicsIE._real_extract+  s    ^^C(
((j9	<"..t/A/AD*0,-79O )/=J(00)+CEO '"#**,$	
 	
 " 	<"00@
 1 <O	<s   =A; ;BBN)r   r   r   IE_NAMEr   r   r   ri   rn   rl   r  r    sF    GMJ h1 QJ \#%%	
  E"
rn   r  c                   R    e 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y)NBCOlympicsStreamIEznbcolympics:streamz4https?://stream\.nbcolympics\.com/(?P<id>[0-9a-z-]+)zTokenized m3u8 source URLz;https://stream.nbcolympics.com/womens-soccer-group-round-112019740r"   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!   r#   r5   r6   
Livestream)noter8   r9   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                    | j                  |      }| j                  ||      }| j                  d|d      }| j                  d| d|d      d   }|d   }dd	d
j	                  |j	                  d            }| j                  d| d|d      d   d   d   d   d   d   }|j	                  d      r| j                  |j	                  dd      t        j                  dd|d         ||j	                  dd            }	| j                  |||j	                  dd      |	      }
| j                  d|dt        j                  ddd |d!dt        j                  |	j                               j                         t        j                  |
j                               j                         |d"d#
      j                         $      d    d   d%   }| j                  ||d&|'      }|D ]  }d(g d)i|d*<    |||||d+S ),Nzpid\s*=\s*(\d+);r   z0http://stream.nbcolympics.com/data/event_config_z.jsonz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   
cdnSourcesr   r   cdnTokenra   NBCOlympicsz	[^\w\d ]+r   ratingIdzNO VALUEr   z%https://tokens.playmakerservices.com/zRetrieving tokenized URLr   z
adobe-passr   r   r   )
r   zauthentication-typer   r   r   r   ra   r   r8   r   r   r   r"   )r   ffmpeg_args)z	-seekablerL   z-http_seekablerL   z-icyrL   downloader_options)r   r  r#   r   r   )r   r   r!  rx   r{   r}   resubr~   ry   rz   r   r   r   r   r   )r   r8   r  r   r   event_configr#   r   r   ap_resourcemedia_tokenr   fs                rl   r   z!NBCOlympicsStreamIE._real_extractd  sz   ^^C(
((j9  !4guE**>se5I+--:< \*5155l6F6F}6UV((:3%  @G  H*
   *+ ,56 789 :EF

 J'11  }=|Rl)CDc  Z8:K 11#sL<L<L]\i<jlwxK,,7>XZZ#.+7# )#0"("2"2;3E3E3G"H"O"O"Q#--k.@.@.BCJJL%#!  68 -    *+J  ,,Ze',R 	nA (56l&mA"#	n $
 	
rn   N)r   r   r   r$  r   r   r   ri   rn   rl   r&  r&  E  ss    "GHJ 0Pz   !	
 ,u E   !
F84
rn   r&  c                       e Zd Zdj                   eej                  d            Zde dZ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idddd dd!d"d#d$d%d&d'd(d
d)gZ	d*d+d,d-d.d/Z
d0 Zy1)2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/2968618r"   z?Large Structure Fire in Downtown LA Prompts Smoke Odor Advisoryz$md5:417ed3c2d91fe9d301e6db7b0942f182gF \@ic20220822zNBC 4KNBCrD  )
r   r!   r#   r$   r/   r%   r&   r(   
channel_idchannelr5   r6   r7   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KTAZrL  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20230201r   WBTSr@  r   19201280960640416)1080720540360234c                    | j                  |      j                  dd      \  }}| j                  ||      }| j                  d|d|      }|j	                  d      xs d}t        |d      }| j                  d|d	|i t        
      }|j                  | j                  d|d|i t        
             |st        dd      i g }
}	t        |j	                  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%<   nt        |d&d"#      }t        |d'd(      }|r| j                  d)|d*d"+      }nt        |d,d"#      }t        |d-d"#      }|rnt        |      }| j                  d.t        |      d/d       }|
j                  ||t        | j                  j	                  |            t        |      d0| d1       |	j                  |j	                  d%      xs t        |d2d"#      t        |d3d4d5      xs t        t        |d6            t!        |      d7       d }|rN|rL| j#                  d8| d9| |d:||;      }t%        |t&        j(                  j*                  j,                        sd }|| j/                  |t0              ni }|%|j3                  | j5                  d<t0                    ng D ]  }t7        t9        |j	                  d=      d>      d?      |	d@<   |j	                  dA      }t;        |j	                  dB      t        |            }|dCk(  r@| j=                  ||dDdE||dFG      \  }}|
j?                  |       | jA                  ||H       |s|
j                  |dI| |t        |j	                  dJ            t        |j	                  d/            dK        |
s| jC                  dLd       n&|r$	 | jE                  tG        |
dM   dN         |dOP       |||j	                  dR      |j	                  dS      |
||dT|	S # t        $ r tI        |Q      w xY w)UNsiter   z<script>\s*var\s+nbc\s*=zNBC JSON datapdkAcctYh1nAC)r   fwSSIDzdata-videos="\[z
video data)defaulttransform_sourcezdata-meta="rT   z"No video metadata found in webpageT)expectedmpx_is_livestreamr   z0MPEG-DASH none,M3U none,MPEG-DASH none,MPEG4,MP3SMIL)r   fwNetworkID382114)rj  ots_desktop_htmlfalser[  r`  LIVEz	on-demandscriptz2.0z	PDK 6.1.3)r   r   fwsitesectionro  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 string)r   )	dataLayeradobe)prop70eVar70eVar59)r~  mp4_urlz
\d+-(\d+)pr   zhttp-)r8   r!   r   r   r  )r  )Nr  )contenttitler#   prop22summaryexcerptvideo_hero_text)r  r  )r#   r$   r%   zhttps://link.theplatform.com/s/r^   zDownloading SMIL data)r)  rP   r   z.//videodurmsr   r/   srcr   r6   r"   hlszNo HLS formats found)r   r   r   errnote)targetzhttps-r   )r8   r  r!   r   r   z!No video content found in webpager   r8   zChecking live status)r)  )r   callLetterson_air_name)r   rS  rR  r(   r   r	  r   )%rv   r  r   _search_jsonr{   r   r   updater   r   r!  r   r   r  _RESOLUTIONSr   r   _download_xml
isinstancexmletreeElementTreeElement_parse_smil_subtitlesr   findall	_xpath_nsr   r   r   #_extract_m3u8_formats_and_subtitlesr  _merge_subtitlesraise_no_formats_request_webpager
   r   )r   r8   rS  r   r   nbc_datapdk_acctfw_ssidr   infor   r   rP   	player_idr  	video_urlr!   r   smilr	  r   video_src_urlfmtssubss                           rl   r   zNBCStationsIE._real_extract  s    11#6<<VTJ((h7$$'/8M<<	*6hx)<=&&x^j ' l
$++GZ2Xd , f 	g !EPTUUBgjnn-@ABaGI$'2JT\]* %F;
 $Z 2FOTVI&i{3DM %Z 2R[`bI 'z=*MK"00);U 1 T +T^ce %Z1WafgI#I.++M<	;RT\fj+k$():):)>)>v)FG)&1#(   KK#0 gL LW`e5g !Y	CTU T!,x9Q"RS.{;  %%1(1YKH(,E & JD dCII$9$9$A$ABDHDTD..tZ@Z\	MQM]T\\$..Z"HIce 	E,Z		%8H$-OQUVD!IIe,Muyy0-:VWCf}!EE!8UE *@ F B
d t$%%d9%=(#)#(7);<)%))H*=>  	& !!"EPT!U4%%
5 12HCY & [ ",,}5 ]3"	
 	
 		
 " 4!7334s   #P) )P?N)r   r   r   joinmapr6  escape
_DOMAIN_REr   r   r  r   ri   rn   rl   r=  r=    s    #bii *  J
 1<klJ CVA#% &
 V
$ zTA#%+ )
 V
& u1AA#% "
	E2Fj Lt
rn   r=  )+r   ry   r6  xml.etree.ElementTreer  commonr   theplatformr   r   	adobepassr   compatr	   
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  r&  r=  ri   rn   rl   <module>r     s      	  ! 2 " 0 $    ,Y
M Y
x? ?D J-  JF7
 7
tW
 W
t,
M ,
^S
+ S
lx
M x
rn   