Ë
    š„jÛ»  ã                   óÆ  — 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+«      Z5y) é    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                   ó.   — e Zd ZdgZdZdZd„ Zd„ Zdd„Zy)	ÚNBCUniversalBaseIEÚUSFz`https?://[^/?#]+/prod/[\w-]+/(?P<folders>[^?#]+/)cmaf/mpeg_(?:cbcs|cenc)\w*/master_cmaf\w*\.m3u8c                 óf  — | j                  d|› �|ddi |¥ddddœ¥| j                  «       ¬«      }d	t        › d
�}t        ||› d�d„ t        f«      x}r|S t        ||› d�d„ dt        f«      }|dk(  r| j                  | 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     úK/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/nbc.pyú<lambda>zMNBCUniversalBaseIE._download_nbcu_smil_and_extract_m3u8_url.<locals>.<lambda>6   s   € ÄmÐTUÓFVÐZ`ÑF`€ ó    Úparamc                 ó*   — |j                  d«      dk(  S )NÚnameÚ	exception)Úgetr3   s     r6   r7   zMNBCUniversalBaseIE._download_nbcu_smil_and_extract_m3u8_url.<locals>.<lambda>9   s   € ¸Q¿U¹UÀ6»]È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ó   € Ø×!Ñ!Ø-¨g¨YÐ7¸Ø'Ð)Kð TØðTà Ø!Ø,ò	Tð
 ×4Ñ4Ó6ð "ó 8ˆð ”J�<˜rÐ"ˆÜ˜t¨¨¨JÐ&7Ñ9`ÔbeÐ%fÓgÐgˆ3ÐgØˆJä˜4 R D¨ ,Ñ0YÐ[cÔehÐ!iÓjˆØÐ&Ò&Ø×%Ñ%°×0CÑ0CÐ%ÔDÜœ\¨$°B°4°}Ð1EÀsÌCÐ0PÓQÐ\_ÐclÑ\lÔmÐmr8   c                 ó8  — d|d<   | j                  |||«      x}}t        j                  | j                  |«      x}rNd|d<   | j                  |||«      }d|v r| j	                  d«       |j                  |j                  d«      ¬«      }d|v sd	|v r| j                  |«       | j                  ||d
dd¬«      \  }}	|sT||k7  rO| j                  ||d
dd¬«      \  }
}	|
D �cg c]  }|j                  d«      rŒ|‘Œ }}|
r|s| j                  |«       ||	fS c c}w )Nzm3u+none,mpeg4ÚformatsÚmpeg4z	{folders}z,Found m3u8 URL template, formatting URL pathÚfolders)rS   z
/mpeg_cencz
/mpeg_cbcsÚmp4ÚhlsF©Úm3u8_idÚfatalÚhas_drm)
rO   ÚreÚ	fullmatchÚ_M3U8_REÚwrite_debugr+   ÚgroupÚ
report_drmÚ#_extract_m3u8_formats_and_subtitlesr=   )rH   rI   rJ   r.   Úorig_m3u8_urlÚm3u8_urlÚmobjÚ	m3u8_tmplrQ   Ú	subtitlesÚ	orig_fmtsÚfs               r6   Ú#_extract_nbcu_formats_and_subtitlesz6NBCUniversalBaseIE._extract_nbcu_formats_and_subtitles>   sK  € ð ,ˆˆiÑØ#'×#PÑ#PÐQXÐZbÐdiÓ#jÐjˆ˜ä—<‘< §¡¨xÓ8Ð8ˆ4Ð8Ø&ˆE�)ÑØ×EÑEÀgÈxÐY^Ó_ˆIà˜iÑ'Ø× Ñ Ð!OÔPØ ×'Ñ'°·
±
¸9Ó0EÐ'ÓFˆHà˜8Ñ# |°xÑ'?Ø�O‰O˜HÔ%à!×EÑEØ�h ¨u¸Eð Fó CÑˆ�ñ ˜8 }Ò4Ø#'×#KÑ#KØ˜x¨¸ÀUð $Ló $LÑ ˆI�yà"+ÖD˜Q°1·5±5¸Õ3C’qÐDˆGÐDÙ¡Ø—‘ Ô)à˜	Ð!Ð!ùò	 Es   Ã!DÃ8DNc                 ó�  ‡— | j                  ||«      }| j                  d|d|«      }i }t        t        d|«      xs d«      }|rÚ|j	                  d«      xs |d   }|d   }	| j                  |j	                  d«      xs d|d	t        ¬
«      }
|j	                  d«      xs |
d   Š|j	                  d«      dk(  rÀ|d   }|d   }| j                  |j	                  d«      xs |d   |d   ||j	                  d«      «      }| j                  |||d   ||d   «      |d<   n[t        |dd„ t        t        d«      hf«      }|d   Š|j	                  d«      xs |d   }|d   }	t        |dˆfd„t        f«      xs i }
|› d |	› d!‰› �}| j                  |‰|«      \  }}| j                  |‰d	¬"«      }| j                  |«      }| j                  |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d/œ¥S 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)rX   Ú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   € ¨A¨mÑ,<€ r8   zLS playlistru   ÚmpxMediaAccountPidÚmpxAccountPidÚmpxMediaAccountIdÚvideosc                 ó   •— |d   ‰k(  S )Nrm   rv   )r4   r5   rJ   s     €r6   r7   z8NBCUniversalBaseIE._extract_nbcu_video.<locals>.<lambda>x   s   ø€ ÈÈ6ÉÐV^ÑI^€ r8   z/media/guid/ú/©rX   re   ©ÚtargetÚtitleÚdescriptionÚdurationInSecondsÚairDateÚthumbnailUrlÚseasonNumberÚepisodeNumberÚepisodeTitleÚshow)	r€   r�   ÚdurationÚ	timestampÚ	thumbnailÚseason_numberÚepisode_numberÚepisodeÚseries)ÚidÚ
display_idrQ   re   Ú_old_archive_ids)Ú_download_webpageÚ_search_jsonr   r   r=   Ú_parse_jsonr   Ú_get_mvpd_resourceÚ_extract_mvpd_authr"   rE   r!   rh   Ú_download_theplatform_metadataÚ_parse_theplatform_metadataÚ_merge_subtitlesÚstrr   r   r    r   )rH   rM   r‘   Ú
old_ie_keyÚwebpagerj   r.   ÚtveÚaccount_pidÚ
account_idÚmetadatarn   Úrelease_pidÚresourcers   rI   rQ   re   Útp_metadataÚparsed_inforJ   s                       @r6   Ú_extract_nbcu_videoz&NBCUniversalBaseIE._extract_nbcu_video[   sæ  ø€ Ø×(Ñ(¨¨jÓ9ˆØ×$Ñ$ØLØ�Z ó-ˆð ˆÜ Ô!:Ð;OÐQXÓ!YÒ!_Ð]_Ó`ˆÙØŸ'™'Ð">Ó?Ò^À3ÐG]ÑC^ˆKØÐ8Ñ9ˆJØ×'Ñ'Ø—‘Ð/Ó0Ò6°B¸
È%Ôbnð (ó pˆHà—w‘w˜{Ó+Ò?¨x¸Ñ/?ˆHØ�w‰wÐ)Ó*¨fÒ4ØÐ 0Ñ1�Ø!Ð"4Ñ5�Ø×2Ñ2Ø—G‘GÐ9Ó:ÒY¸dÐCXÑ>YØ˜Ñ% {°C·G±G¸MÓ4JóL�ð !%× 7Ñ 7Ø˜ dÐ+AÑ&BØ˜dÐ#?Ñ@ó!B��f’ô ' xØÑ<¼cÄGÈMÓDZÐC[ð2]ó ^ˆKà" =Ñ1ˆHØ%Ÿ/™/Ð*>Ó?Ò_À;ÈÑC_ˆKØ$Ð%8Ñ9ˆJÜ# K°(Ó<^Ô`cÐ1dÓeÒkÐikˆHà �M ¨j¨\¸¸8¸*ÐEˆØ!×EÑEÀgÈxÐY^Ó_Ñˆ�Ø×9Ñ9¸'À8ÐSXÐ9ÓYˆØ×6Ñ6°{ÓCˆØ×Ñ˜k¨+Ñ6¸yÐÔIð
Øð
ä˜8Ø!¤C 5Ð)Ø -´¨uÐ5Ø0´;°-Ð@Ø'¬-¨Ð9Ø,¬{¨mÐ<Ø"0´;°-Ð!@Ø#2´[°MÐ"BØ*¬S¨EÐ2Ø!¤C 5˜/ñ
&ó 
ð
ð Ø$ØØ"ÙKU¤°¸XÓ!FÐ Gò#
ð 	
ð" \`ò#
ð 	
r8   ©N)	Ú__name__Ú
__module__Ú__qualname__rG   Ú_GEO_BYPASSr\   rO   rh   r¦   rv   r8   r6   r$   r$   &   s#   „ Ø�V€NØ€KØr€Hònò&"ô:7
r8   r$   c                   ób  — 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yM)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ÚextrT   r€   z,Jimmy Fallon Surprises Fans at Ben & Jerry'sr�   z€Jimmy gives out free scoops of his new "Tonight Dough" ice cream flavor by surprising customers at the Ben & Jerry's scoop shop.rŠ   i€FäTÚ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   ©rM   Ú	info_dictÚparamsz�https://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 75éK   zGolden GlobeszZOprah Winfrey receives the Cecil B. de Mille Award at the 75th Annual Golden Globe Awards.Ú20180107i€ÓQZg´Èv¾ŸÍ�@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  €o3²ÙAÚ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©rM   Ú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                 ó^  — | j                  |«      j                  «       \  }}dt        j                  j	                  |«      z   }| j                  d|dt        j                  |dddœ«      dœ¬«      d	   d
   d   }|sY| j                  ||«      }| j                  d|d|«      d   t        j                  j                  |«      j                     d   d   }|d   }d|d   › d|› �}| j                  ||d¬«      }t        |dt        hf«      xs |j                  d«      }i }	|j                  d«      rH| j!                  |d   |||j                  d«      «      }
| j#                  ||d|
| j$                  «      |	d<   | j'                  |||	«      \  }}| j)                  |«      }| j+                  |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Únbcentertainmentrn   re   r~   r�   r†   r…   Úkeywords.ÚseriesShortTitle)r�   rŽ   r�   rŒ   r½   r·   r�   ÚThePlatform)r�   r€   rQ   re   r’   )Ú_match_valid_urlÚgroupsÚurllibÚparseÚunquoteÚ_download_jsonÚjsonÚdumpsr“   r”   ÚurlparseÚpathr˜   r"   r›   r=   r–   r—   Ú_SOFTWARE_STATEMENTrh   r™   rš   Úfilterr   r   Úallr   )rH   rM   Ú	permalinkrJ   Ú
video_datar�   rI   Útpmr€   r.   r£   rQ   re   r¥   s                 r6   Ú_real_extractzNBCIE._real_extractë   s¦  € Ø"×3Ñ3°CÓ8×?Ñ?ÓAÑˆ	�8ØœVŸ\™\×1Ñ1°)Ó<Ñ<ˆ	Ø×(Ñ(Ø2°Hð ôB "ŸZ™ZØ%Ø"Ø!ñ)ó ñE'Eð )ó (ðP ñQ(ðP %ñQ(&ðP '1ñQ(2ˆ
ñT à×,Ñ,¨S°(Ó;ˆGØ×*Ñ*Ø)¨7°LØóà!ñ#ä#)§<¡<×#8Ñ#8¸Ó#=×#BÑ#BñDàDJñLàLVñXˆJð ˜iÑ(ˆØ& z°.Ñ'AÐ&BÀ!ÀHÀ:ÐNˆØ×1Ñ1°'¸8È5Ð1ÓQˆÜ˜S 7¬S¨EÐ"2Ó3ÒW°z·~±~ÐFVÓ7WˆØˆØ�>‰>˜(Ô#Ø×.Ñ.Ø˜<Ñ(¨%°¸:¿>¹>È(Ó;SóUˆHà ×3Ñ3Ø�XÐ1°8¸T×=UÑ=UóWˆE�&‰Mð "×EÑEÀgÈxÐY^Ó_Ñˆ�Ø×6Ñ6°sÓ;ˆØ×Ñ˜k¨+Ñ6¸yÐÔIð
Ü˜:Ø -´¨u´fÐ=Ø,¬s¨e´VÐ<Ø#2´[°MÐ"BØ"0´;°-Ð!@Ø&¬Ð(9Ð:Ø# S¬3¨%´¼¼fÐEØ-´¨uÐ5ñ(ó ð
ð ð
ð ØØØ"Ü!0°ÀÓ!IÐ Jò
ð 	
r8   N)r¨   r©   rª   Ú
_VALID_URLÚ_TESTSrê   rð   rv   r8   r6   r­   r­   •   s�  „ Øp€Jà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€Fðd SÐóS
r8   r­   c                   ód   — 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y)Ú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Ú9CsDKds0kvHIrT   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‹   ©rM   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                 ó’   — | j                  |«      }| j                  ||«      }| j                  d|d«      }| j                  |d«      S )Nztp:releaseUrl="(.+?)"rM   rß   )Ú	_match_idr“   Ú_html_search_regexÚ
url_result)rH   rM   rJ   r�   Útheplatform_urls        r6   rð   z NBCSportsVPlayerIE._real_extract]  sI   € Ø—>‘> #Ó&ˆØ×(Ñ(¨¨hÓ7ˆØ×1Ñ1Ð2JÈGÐUZÓ[ˆØ�‰˜°Ó>Ð>r8   N)	r¨   r©   rª   Ú_WORKINGÚ_VALID_URL_BASErñ   Ú_EMBED_REGEXrò   rð   rv   r8   r6   rô   rô   A  s�   „ Ø€HØ_€OØ Ð#FÑF€JØ]Ð^mÐ]nÐnuÐvÐw€Lð \à ØØAØJØ#Ø%Ø%ØØØ1ñ
ñð bØñð rØñð#€Fó,?r8   rô   c                   ób   — 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y)ÚNBCSportsIEFzMhttps?://(?:www\.)?nbcsports\.com//?(?!vplayer/)(?:[^/]+/)+(?P<id>[0-9a-z-]+)zghttps://www.nbcsports.com/watch/nfl/profootballtalk/pft-pm/unpacking-addisons-reckless-driving-citationÚPHJSaFWbrTY9rT   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©rM   rÀ   Úskipc                 ó’   — | j                  |«      }| j                  ||«      }| j                  t        j	                  |«      d«      S )NÚNBCSportsVPlayer)rú   r“   rü   rô   Ú_extract_url)rH   rM   rJ   r�   s       r6   rð   zNBCSportsIE._real_extractŠ  sF   € Ø—>‘> #Ó&ˆØ×(Ñ(¨¨hÓ7ˆØ�‰Ü×+Ñ+¨GÓ4Ð6HóJð 	Jr8   N)r¨   r©   rª   rþ   rñ   rò   Ú_WEBPAGE_TESTSrð   rv   r8   r6   r  r  d  sˆ   „ Ø€HØa€Jð yà ØØNØAØ%Ø%Ø#ØØØñ
ñð" qØñð gØñð'€Fð2 qà ØØEñ
ð
 ñð €NóJr8   r  c                   ó8   — e Zd ZdZdZddddddœd	d
iddœgZd„ Zy)ÚNBCSportsStreamIEFz4https?://stream\.nbcsports\.com/.+?\bpid=(?P<id>\d+)z4http://stream.nbcsports.com/nbcsn/generic?pid=206559Ú206559rT   z&Amgen Tour of California Women's Recapz$md5:66520066b3b5281ada7698d0ea2aa894©r�   r¯   r€   r�   r¾   Tz"Requires Adobe Pass Authentication©rM   rÀ   rÁ   r
  c                 ó&  — | j                  |«      }| j                  d|› d�|«      }|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|
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 )Nz.http://stream.nbcsports.com/data/live_sources_ú.jsonÚvideoSourcesr   r€   )ÚsourceÚ
msl4sourceÚ	iossourceÚhlsv4ÚUrlÚAltÚottStreamUrlÚtypeÚliveÚstatusÚLiveÚ	nbcsportsrk   z'https://token.playmakerservices.com/cdnÚ	NBCSportsÚv1ÚdesktopÚakamaiÚ	sourceUrl)	ÚrequestorIdÚpidÚapplicationÚversionÚplatformÚcdnrM   ÚtokenrÚ   ©rÑ   ÚtokenizedUrlrT   r�   )r�   r€   r�   rQ   Úis_live)rú   rå   r=   r–   r—   ræ   rç   Úbase64Ú	b64encodeÚencodeÚdecodeÚ_extract_m3u8_formats)rH   rM   rJ   Úlive_sourceÚvideo_sourcer€   Ú
source_urlÚkÚskr1  r£   r.  Útokenized_urlrQ   s                 r6   rð   zNBCSportsStreamIE._real_extract£  sÁ  € Ø—>‘> #Ó&ˆØ×)Ñ)Ø<¸X¸JÀeÐLØóˆð # >Ñ2°1Ñ5ˆØ˜WÑ%ˆØˆ
Ø?ò 	6ˆAØ�U‘ˆBØ%×)Ñ)¨"Ó-ÒM°×1AÑ1AÀ"ÀuÁ*Ó1MˆJÚÙð		6ð & nÑ5ˆJØ×"Ñ" 6Ó*¨fÑ4Ò\¸×8HÑ8HÈÓ8RÐV\Ñ8\ˆØ×*Ñ*¨;¸¸xÈÓLˆØ×'Ñ'¨¨X°{ÀHÈdÓSˆØ×+Ñ+Ø5Øœ4Ÿ:™:Ø*ØØ*ØØ%ØØ# KÑ0Ü×)Ñ)¨%¯,©,«.Ó9×@Ñ@ÓBÜ$×.Ñ.¨x¯©Ó/@ÓA×HÑHÓJñ
'ó 
÷ ‰v‹xð ,ó ð (ñ)ˆð ×,Ñ,¨]¸HÀeÓLˆàØØ&Ÿ?™?¨=Ó9ØØñ
ð 	
r8   N)r¨   r©   rª   rþ   rñ   rò   rð   rv   r8   r6   r  r  ‘  sB   „ Ø€HØH€Jà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yH)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Ú269389891880rT   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‹   ©rM   Ú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.)rM   rC  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:1c10c1eccbe84a26e5debb4381e2d3c5i„ÛÒTÚ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 votez The 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                 óæ  — | 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«      }|j                  t        |
|«      |	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Úcurrentrv   ©Úxs    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>4  s   € ¨Q¨w©Z¸	Ñ-B€ r8   ÚarticleÚcontentr   ÚprimaryMediarW  ÚheadlineÚprimaryÚvideoAssetsÚ	publicUrlz://link.theplatform.com/r+   ÚredirectÚM3UrT   Úm3u8_nativeFrV   Úbitrateéè  ÚwidthÚheight)Ú	format_idrM   rg  rh  Útbrr¯   ÚclosedCaptioningÚenrM   c                 ó   — | d   d   S )Nr�   r_  rv   rY  s    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>]  s   € ¸¸=Ñ9IÈ)Ñ9T€ r8   c                 ó   — | d   d   d   S )NÚprimaryImagerM   r_  rv   rY  s    r6   r7   z)NBCNewsIE._real_extract.<locals>.<lambda>^  s   € °q¸Ñ7HÈÑ7OÐPYÑ7Z€ r8   r‰   ÚdatePublished)r�   r€   r�   r‹   r‰   rŠ   rQ   re   )rú   r“   Ú_search_nextjs_datar   Údictr=   r   Úextendr6  r   Úappendr   ÚvaluesÚ
setdefaultr   r   )rH   rM   rJ   r�   rÑ   rî   r€   rQ   ÚvaÚ
public_urlri  rj  re   Úclosed_captioningÚcc_urls                  r6   rð   zNBCNewsIE._real_extract/  s  € Ø—>‘> #Ó&ˆØ×(Ñ(¨¨hÓ7ˆà×'Ñ'¨°Ó:¸7ÑCÀNÑSˆÜ˜TÑ#BÄDÓIˆ
ÙØ˜i™¨Ñ3°AÑ6°~ÑFÀwÑOˆJØ˜:Ñ& yÑ1ˆàˆØ—.‘. °Ó3ò 	ˆBØŸ™ Ó,ˆJÙØØ)¨ZÑ7Ü-¨j¸8ÀZÐ:PÓQ�
ØŸ™˜xÓ(ˆIØ˜EÒ!Ø—‘˜t×9Ñ9Ø ¨%°Ø%¨Uð  :ó  4ô 5ð Ü˜bŸf™f YÓ/°Ó6ˆCØ�N‰NÜ*¨9°cÓ:Ø!Ü$ R§V¡V¨G£_Ó5Ü% b§f¡f¨XÓ&6Ó7ØØñõ ð	ð, ˆ	Ø&ŸN™NÐ+=Ó>ÐÙØ+×2Ñ2Ó4ò �ÙØØ×$Ñ$ T¨2Ó.×5Ñ5Ø˜6ð7õ ðð ØÜ" :Ñ/TÓUÜ  Ñ-ZÓ[Ü& z§~¡~°jÓ'AÓBÜ*¨:¯>©>¸/Ó+JÓKØØ"ñ	
ð 		
r8   N)r¨   r©   rª   rñ   r   rò   r  rð   rv   r8   r6   r>  r>  Ì  sm  „ Øg€JØsÐt€Lð 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€Fðl bà3ØØ1ñ
ð
 ñð €Nó4
r8   r>  c                   óF   — 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y)ÚNBCOlympicsIEÚnbcolympicsz9https?://www\.nbcolympics\.com/videos?/(?P<id>[0-9a-z-]+)zUhttps://www.nbcolympics.com/videos/watch-final-minutes-team-usas-mens-basketball-goldÚSAwGfPlQ1q01rT   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(0¸fÚ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                 ó>  — | 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)r^   Úurl_transparent)Ú_typerM   Úie_keyr‘   )rú   r“   r•   Ú_search_regexÚreplacer   r   r†  )rH   rM   r‘   r�   Údrupal_settingsr‚  rý   s          r6   rð   zNBCOlympicsIE._real_extract  sÉ   € Ø—^‘^ CÓ(ˆ
à×(Ñ(¨¨jÓ9ˆð	<Ø"×.Ñ.¨t×/AÑ/AØDØÐ*ó0,à-7ó9ˆOð )¨Ñ/°Ñ=ˆJØ(×0Ñ0Ø)Ð+CóEˆOð 'Ø"Ü#×*Ñ*Ó,Ø$ñ	
ð 	
øô "ò 	<Ø"×0Ñ0Ø@Ø˜°
ð 1ó <ŠOð	<ús   ¥=A; Á;BÂBN)r¨   r©   rª   ÚIE_NAMErñ   rò   rð   rv   r8   r6   r|  r|  f  sW   „ Ø€GØM€Jð gà ØØNØTØAØVØ%ØØ/Ø#Ø%ñ
ñð" hØñð!€Fó*
r8   r|  c                   óV   — 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y)Ú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Ú2019740rT   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)ÚnoterM   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                 óô  — | 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«      |	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_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   Ú
cdnSourcesr_  r'  ÚcdnTokenrÚ   ÚNBCOlympicsz	[^\w\d ]+rk   ÚratingIdzNO VALUEr(  z%https://tokens.playmakerservices.com/zRetrieving tokenized URLr#  z
adobe-passr&  r%  r$  )
r*  zauthentication-typer-  r)  r,  r(  rÚ   r.  rM   r+  r/  r0  rT   )r  Úffmpeg_args)z	-seekablerÍ   z-http_seekablerÍ   z-icyrÍ   Údownloader_options)r�   r‘   r€   rQ   r1  )rú   r“   r‡  rå   r=   r–   rZ   Úsubr—   ræ   rç   r2  r3  r4  r5  r6  )rH   rM   r‘   r�   r)  Úevent_configr€   r1  r9  Úap_resourceÚmedia_tokenrQ   rg   s                r6   rð   z!NBCOlympicsStreamIE._real_extract·  s}  € Ø—^‘^ CÓ(ˆ
Ø×(Ñ(¨¨jÓ9ˆØ× Ñ Ð!4°g¸uÓEˆà×*Ñ*Ø>¸s¸eÀ5ÐIØÐ+ó-à-:ñ<ˆð ˜\Ñ*ˆØ¨5Ñ1×5Ñ5°l×6FÑ6FÀ}Ó6UÓVˆà×(Ñ(Ø:¸3¸%ð  @Gð  HØÐ*ó
ð ñð ñð *ñ+ð ,5ñ6ð 78ñ9ð :EñFˆ
ð
 ×Ñ˜JÕ'Ø×1Ñ1Ø× Ñ  ¨}Ó=Ü—‘�| R¨°lÑ)CÓDÀcØ× Ñ  ¨ZÓ8ó:ˆKð
 ×1Ñ1°#°s¸L×<LÑ<LÈ]Ð\iÓ<jÐlwÐy}Ó~ˆKà×,Ñ,Ø7¸Ð>XÜ—Z‘ZØ#.Ø+7Ø#ØØ )Ø#0Ü"(×"2Ñ"2°;×3EÑ3EÓ3GÓ"H×"OÑ"OÓ"QÜ#×-Ñ-¨k×.@Ñ.@Ó.BÓC×JÑJÓLØ%Ø#ñ!ó ÷ ‘6“8ð -ó ð ñð ñð *ñ+ˆJð  ×,Ñ,¨Z¸¸eÈ'Ð,ÓRˆØò 	nˆAð (5Ò6lÐ&mˆAÐ"Ò#ð	nð Ø$ØØØñ
ð 	
r8   N)r¨   r©   rª   rþ   rŠ  rñ   rò   rð   rv   r8   r6   rŒ  rŒ  ™  sv   „ Ø€HØ"€GØH€Jà+ØLàØØvñ
ð ˜Vð
ð ñð (ØqàØð Añ
ð ˜Vð
ð ñð€Fó45
r8   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œ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y3)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/Ú2968618rT   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:af298dc73aab74d4fca6abfb12acb6cfg¢E¶óýŒe@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@i0’ÚcÚ20230201rk   ÚWBTSr¤  rB  Ú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||dF¬G«      \  }}|
j?                  |«       | jA                  ||¬H«       Œ¦|sŒ©|
j                  |dI|› �|t        |j	                  dJ«      «      t        |j	                  d/«      «      dKœ«       Œô |
s| jC                  dLd¬«       n&|r$	 | jE                  tG        |
dM   dN   «      |dO¬P«       |||j	                  dR«      |j	                  dS«      |
||dTœ|	¥S # t        $ r tI        |¬Q«      ‚w xY w)UNÚsiter�   z1(?:<script>\s*var\s+nbc\s*=|Object\.assign\(nbc,)zNBC JSON dataÚpdkAcctÚYh1nAC)rW  ÚfwSSIDzdata-videos="\[rÓ   )Údefaultrl   zdata-meta="r¡   z"No video metadata found in webpageTrA   Úmpx_is_livestreamr   z0MPEG-DASH none,M3U none,MPEG-DASH none,MPEG4,MP3r(   )rW  ÚfwNetworkIDÚ382114)rÎ  Úots_desktop_htmlÚfalser¿  rÄ  ÚLIVEz	on-demandÚscriptz2.0z	PDK 6.1.3)rQ   r+   ÚfwsitesectionrÐ  ÚpprofileÚ	sensitiveÚwÚhÚmodeÚvpaidÚschemaÚsdk)©N)rW  Ú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+)prh  zhttp-)rM   r¯   rg  rh  ri  )rè  )Nré  )Úcontenttitler€   Úprop22ÚsummaryÚexcerptÚvideo_hero_text)rè  rð  )r€   r�   rŠ   r'   r|   zDownloading SMIL data)r�  r.   rX   z.//videoÚdurÚmsrf  r‰   Úsrcr  r2   rT   rU   zNo HLS formats found)rW   rX   r  Úerrnoter~   zhttps-rg  )rM   ri  r¯   rg  rh  z!No video content found in webpager   rM   zChecking live status)r�  )rJ   ÚcallLettersÚon_air_name)r�   r·  r¶  r²   rQ   re   r1  )%rà   r^   r“   r”   r=   r"   r   Úupdater   r   r‡  r   r   rt  Ú_RESOLUTIONSr   r   rC   Ú
isinstanceÚxmlÚetreeÚElementTreeÚElementÚ_parse_smil_subtitlesr   ÚfindallÚ	_xpath_nsr   r   r   r`   rs  rš   Úraise_no_formatsÚ_request_webpager
   r   )rH   rM   r·  rJ   r�   Únbc_dataÚpdk_acctÚfw_ssidrî   ÚinforQ   r1  r.   Ú	player_idræ  Ú	video_urlr¯   rh  rK   re   rW  Úvideo_src_urlÚfmtsÚsubss                           r6   rð   zNBCStationsIE._real_extract1  sÏ  € Ø ×1Ñ1°#Ó6×<Ñ<¸VÀTÓJÑˆ�Ø×(Ñ(¨¨hÓ7ˆà×$Ñ$Ø@À'È?Ð\dófˆà—<‘< 	Ó*Ò6¨hˆÜ˜xÐ)<Ó=ˆà×&Ñ&Ø ¨°xÈÔ^jð 'ó lˆ
à×Ñ˜$×+Ñ+Ø˜G Z°À2ÔXdð ,ó fô 	gáÜ Ð!EÐPTÔUÐUà˜BˆgˆÜ˜jŸn™nÐ-@ÓAÓBÀaÑGˆàIØØ$Ü'¨Ð2JÐT\Ô]Ø*Ø ØØÙ%‘F¨;ØØØñ
ˆñ Ü$ Zð 2FØOTôVˆIà&˜i {Ð3ˆD�‹Mô % Zð 2RØ[`ôbˆIô ' z°=À*ÓMˆKÙØ"×0Ñ0Ø)¨;¸ÈUð 1ó T‘ô +ØÐTÐ^côe�ô % ZÐ1WÐafÔgˆIÙÜ# IÓ.�Ø×+Ñ+¨M¼<È	Ó;RÐT\ÐfjÐ+Ók�Ø—‘Ø$ØÜ(¨×):Ñ):×)>Ñ)>¸vÓ)FÓGÜ)¨&Ó1Ø#(¨¨ ñ ô ð �K‰KØ#Ÿ™¨Ó0ò g´LÀð LWØ`eô5gô ! ¨Y¸	ÐCTÓUò TÜ!¤,¨xÐ9QÓ"RÓSÜ.¨{Ó;ñô ð ˆÙ™Ø×%Ñ%Ø1°(°¸1¸Y¸KÐHÈ(Ø,°EÀð &ó JˆDô ˜d¤C§I¡I×$9Ñ$9×$AÑ$AÔBØ�ØDHÐDT�D×.Ñ.¨t´ZÔ@ÐZ\ˆ	ØMQÐM]�T—\‘\ $§.¡.°¼ZÓ"HÔIÐceò 	ˆEÜ,¬Z¸¿	¹	À%Ó8HÈ$Ó-OÐQUÓVˆD�ÑØ!ŸI™I eÓ,ˆMÜ˜uŸy™y¨Ó0¼-ÈÓ:VÔWˆCØ�fŠ}Ø!×EÑEØ! 8¨U¸EÈØ Ð*@ð Fó B‘
��dð —‘˜tÔ$Ø×%Ñ% d°9Ð%Õ=ÚØ—‘Ø(Ø#)¨#¨ ØÜ(¨¯©°7Ó);Ó<Ü)¨%¯)©)°HÓ*=Ó>ñ õ ð	ñ& Ø×!Ñ!Ð"EÐPTÐ!ÕUÙð4Ø×%Ñ%Ü ¨¡
¨5Ñ 1Ó2°HÐCYð &ô [ð ØØ"Ÿ,™, }Ó5Ø Ÿ™ ]Ó3ØØ"Øñ	
ð ð	
ð 		
øô "ò 4Ü!¨7Ô3Ð3ð4ús   Ï#P) Ð)P?N)r¨   r©   rª   ÚjoinÚmaprZ   ÚescapeÚ
_DOMAIN_RErñ   rò   rú  rð   rv   r8   r6   r¡  r¡  ï  sø   „ Ø—‘™#˜bŸi™ið *ó ó €Jð
 1°°Ð<kÐl€Jð CàØØVØAØØ#Ø%ØØ Ø&ñ
ð ñð  zàØØTØAØØ#Ø%Ø+Ø Ø)ñ
ð ˜Vð
ñð& uØ1àØØAØAØØ#Ø%ØØ Ø"ñ
ñ	ðA0€Fðf ØØØØñ€Ló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y\)]Ú	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¯   rT   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Ú20190618i�7]r	   zMother Vs SonéD   rµ   zNBCU-OXY)r#  r"  r$  r&  r%  z@https://www.bravotv.com/below-deck/season-3/ep-14-reunion-part-1TrÉ   c                 óH   — | j                  |«      }| j                  ||«      S r§   ©rú   r¦   ©rH   rM   r‘   s      r6   rð   zBravoTVIE._real_extract  s#   € Ø—^‘^ CÓ(ˆ
Ø×'Ñ'¨¨ZÓ8Ð8r8   N©r¨   r©   rª   rñ   rò   rð   rv   r8   r6   r  r  ¨  sý  „ Ø[€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€FóL9r8   r  c                   ób  — 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yI)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¯   rT   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î|?5ÞC�@z<Untitled Chapter 2>g     ì•@z<Untitled Chapter 3>g     8�@z<Untitled Chapter 4>gw¾Ÿï�£@z<Untitled Chapter 5>z<Untitled Chapter 6>i°g±cÚ20230101r»   ztheplatform 3772391)r²   r¹   r·   r’   r  r  c                 óL   — | j                  |«      }| j                  ||d¬«      S )Nrß   )rœ   r+  r,  s      r6   rð   zSyfyIE._real_extractR  s(   € Ø—^‘^ CÓ(ˆ
Ø×'Ñ'¨¨ZÀMÐ'ÓRÐRr8   Nr-  rv   r8   r6   r/  r/    sU  „ Øw€JàSð
Ø�)ð
à�5ð
ð ˜*ð
ð �Zð	
ð
 ÐAð
ð ˜ð
ð ˜ð
ð Ð@ð
ð �jð
ð �kð
ð ˜Rð
ð Ð9ð
ð ˜bð
ð ˜ð
ð ˜:ð
ð  ˜)ð!
ð" ˜ð#
ð$ -Ð-ØØ!6Ð 7ò)
ð, # FÐ+ñ1ð4 eð
Ø�)ð
à�5ð
ð Ð<ð
ð Ð5ð	
ð
 ÐAð
ð ˜ð
ð ˜ð
ð Ð@ð
ð ¨¸ÐI_Ñ`Ø(-¸8ÐNdÑeØ(0¸fÐOeÑfØ(.¸FÐMcÑdØ(.¸HÐOeÑfØ(0¸dÐMcÑdðfð
ð �jð
ð  �kð!
ð" ˜Rð#
ð$ Ð9ð%
ð& ˜bð'
ð( ˜ð)
ð* ˜:ð+
ð, ˜.ð-
ð. $Ø,Ð-ØØ!6Ð 7ò5
ð8 # FÐ+Ø?ñ? ð39€FóvSr8   r/  )6r2  ræ   rZ   Ú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  r>  r|  rŒ  r¡  r  r/  rv   r8   r6   ú<module>rC     sè   ðÛ Û Û 	Û Û å "Ý !ß EÑ EÝ $÷÷ ÷ ÷ ÷ ÷ ÷0 4ôl
Ð*ô l
ô^i
Ðô i
ôX ?˜ô  ?ôF*J�-ô *JôZ8
˜ô 8
ôvW
�ô W
ôt0
�Mô 0
ôfS
˜+ô S
ôlv
�Mô v
ôrj9Ð"ô j9ôZ?SÐõ ?Sr8   