
    V|h%                     R    S SK Jr  SSKJrJrJrJrJrJr  SSK	J
r
   " S S\5      rg)   )InfoExtractor   )ExtractorError
clean_htmldetermine_extint_or_noneparse_iso8601url_or_none)traverse_objc                      \ rS rSrSrS0 SS_SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#.S$S%SS&S'S(S)S*S+S,S-S.S/S.S0S1S2.S#.S3S4SS5S6S7S8S9S:S;S<S=S>S=S?S"S2.S#.S@SASSBSCSDSE\\SFSGSHSDSI/SJSKSL.S#.SM0 SSN_SS_S
SO_SSP_SSQ_SSR_SSST_SUSQ_SVSW_SXSY_SZS[_S\\_S]\_S^\_S_\_S`SF_SSa_SbSc// SdQSeSfS[SgShSi.ES#.SjSkSlSmSnSoSpSqSSrSSsSSt.SuSv./rSw rSxrgy)zMSNIE   zhttps?://(?:(?:www|preview)\.)?msn\.com/(?P<locale>[a-z]{2}-[a-z]{2})/(?:[^/?#]+/)+(?P<display_id>[^/?#]+)/[a-z]{2}-(?P<id>[\da-zA-Z]+)zghttps://www.msn.com/en-gb/video/news/president-macron-interrupts-trump-over-ukraine-funding/vi-AA1zMcD7idAA1zMcD7extmp4
display_idz6president-macron-interrupts-trump-over-ukraine-fundingtitlez6President Macron interrupts Trump over Ukraine fundingdescriptionz$md5:5fd3857ac25849e7a56cb25fbe1a2a8buploaderz
k! News UKuploader_idBB1hz5Rjduration;   	thumbnailzDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1zMagX.imgtagszcount:14	timestampigupload_date20250225release_timestampi@!grelease_datemodified_timestampiygmodified_date20250308)url	info_dictzlhttps://www.msn.com/en-gb/video/watch/films-success-saved-adam-pearsons-acting-career/vi-AA1znZGE?ocid=hpmsnAA1znZGEz/films-success-saved-adam-pearsons-acting-careerz1Films' success saved Adam Pearson's acting careerz$md5:98c05f7bd9ab4f9c423400f62f2d3da5zSky NewsAA2eki4   zDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1zo7nU.imgim3g20250219igicg20250315)r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   zohttps://www.msn.com/en-us/entertainment/news/rock-frontman-replacements-you-might-not-know-happened/vi-AA1yLVcDAA1yLVcDz6rock-frontman-replacements-you-might-not-know-happenedz6Rock Frontman Replacements You Might Not Know Happenedz$md5:451a125496ff0c9f6816055bb1808da9zGrunge (Video)BB1oveoViT  zDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1yM4OJ.imgiqg20250210icgiHgzhttps://www.msn.com/de-de/nachrichten/other/the-first-descendant-gameplay-trailer-zu-serena-der-neuen-gefl%C3%BCgelten-nachfahrin/vi-AA1B1d06x9g6oliuS   The First Descendant: Gameplay-Trailer zu Serena, der neuen geflügelten Nachfahrin MeinMMOx2mvqi4    <   z.https://s1.dmcdn.net/v/Y3fO61drj56vPB9SS/x1080zThe First DescendantiMg20250316)r   r   r   r   r   r   
view_count
like_count	age_limitr   r   r   r   r   zBhttps://www.msn.com/en-gb/video/webcontent/web-content/vi-AA1ybFaJkQSChWu95nEz.7 Daily Habits to Nurture Your Personal Growthz$md5:6f233c68341b74dee30c8c121924e827TopThinkz	@TopThinkuploader_urlz!https://www.youtube.com/@TopThinkchannel
channel_idzUCMlGmHokrQRp-RaNO7aq4Uwchannel_urlz8https://www.youtube.com/channel/UCMlGmHokrQRp-RaNO7aq4Uwchannel_is_verifiedTchannel_follower_countcomment_countr6   r7   r8   i  z4https://i.ytimg.com/vi/kQSChWu95nE/maxresdefault.jpgzHowto & Style)topthinkz	top thinkzpersonal growthiD~f20240803publicnot_live)r   
categoriesr   r   r   playable_in_embedavailabilitylive_statuszhttps://www.msn.com/en-in/news/techandscience/watch-earth-sets-and-rises-behind-moon-in-breathtaking-blue-ghost-video/ar-AA1zKoAcAA1zKoAczHWatch: Earth sets and rises behind Moon in breathtaking Blue Ghost videoz$md5:0ad51cfa77e42e7f0c46cf98a619dbbfzIndia TodayAAyFWGzcount:11igigiqg)r   r   r   r   r   r   r   r   r    r!   r"   r#   r   )r%   r&   playlist_countc                    U R                  U5      R                  SSS5      u  p#nU R                  SU SU 3U5      n[        US[        14SS[
        144[        1[        [        4S	[        14S
[        14S[        14SSS[        14SS[        14SS[        14SS[        14SS[        14S.
5      nUS   n[        US[        145      nUS:X  Gai  [        US5      (       a  U(       a  U R                  U5      $ / n	0 n
[        USSS 45       H  nUS   n[        U5      nUS:X  a6  U R                  XSSSS 9u  pU	R                  U5        U R                  XS!9  MO  US":X  a5  U R!                  XS#SS$9u  pU	R                  U5        U R                  XS!9  M  U	R#                  [        USS%[        14S&[        14S'[        14S([        14S).5      5        M     [        USS*S+ 45       HD  nUR%                  S5      =(       d    S,nU
R'                  U/ 5      R#                  US-   S.S/.5        MF     UUU	U
S0.UE$ US1:X  a#  U(       d  [)        S25      eU R                  U5      $ US3:X  aR  / n[        US4SS5[        145       H#  nUR#                  U R                  U5      5        M%     U R*                  " UU40 UD6$ [)        S6U 35      e)7Nlocaler   r   z.https://assets.msn.com/content/view/v2/Detail//r   abstractbodycreatedDateTimepublishedDateTimeupdatedDateTimer   imager%   videoMetadataplayTimekeywords.providername)
r   r   r   r    r"   r   r   r   r   r   type
sourceHrefvideo)thirdPartyVideoPlayerenabledexternalVideoFilesc                     [        US   5      $ )Nr%   r
   _vs     N/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/msn.py<lambda>%MSNIE._real_extract.<locals>.<lambda>   s    epqrsxqyez    m3u8r   hlsF)m3u8_idfatal)targetmpddash)mpd_idrm   formatfileSizeheightwidth)r%   	format_idfilesizert   ru   closedCaptionsc                     [        US   5      $ )Nhrefrb   rc   s     rf   rg   rh      s    dopqrxpydzri   zen-usrz   ttml)r%   r   )r   r   formats	subtitles
webcontentzCould not find source URLarticlesocialEmbedspostUrlzUnsupported page type: )_match_valid_urlgroup_download_jsonr   strr   filteranyr	   r
   r   
url_resultr   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitles"_extract_mpd_formats_and_subtitlesappendget
setdefaultr   playlist_result)selfr%   rN   r   page_id	json_datacommon_metadata	page_type
source_urlr|   r}   filefile_urlr   fmtssubscaptionlangentries	embed_urls                       rf   _real_extractMSNIE._real_extract   sA   &*&;&;C&@&F&FxQ]_c&d#G''<VHAgYOQXZ	 'yu%'&:,)?@3%QTU+m_="5!G#4}o"F%w}E(*{mDse,#VcU3&se43
  f%	!)l[M-JK
I'KLLQ[z22GI$YBVXz0{|;#H-&=!%!I!I 5%u "J "NJDNN4())$)AE\!%!H!H & "I "GJDNN4())$)ANN$T#(*2SE):)3k](C'/+&?&-}%=,  }, (	OEUWz3{|{{8,7$$T2.55"6?!7  } ("&	
 "  ,&$%@AA??:..)#G))nc9WbVc5de	ty9: f ''LOLL6ykBCCri    N)	__name__
__module____qualname____firstlineno__
_VALID_URLint_TESTSr   __static_attributes__r   ri   rf   r   r      s    \Jx
*
5
 R
 M	

 A
 
 :
 
 _
 J
 
 :
  
 J
 !*
  Z!
* ~KHA"#_#%!+&",'
( ARMA(%_#%!+&",'
* _j!$I 67#%
* T
-
5
 E
 A	

 

 ;
 ?
 z
 4
 U
 "4
 %c
 S
 #
 #
  !
" #
$ P*+@#%!%$%3
@ S_A%##%!+&",'
 #W}F~IDri   r   N)commonr   utilsr   r   r   r   r	   r
   utils.traversalr   r   r   ri   rf   <module>r      s'    !  +JDM JDri   