
    VGh%                     R    d dl mZ ddlmZmZmZmZmZmZ ddl	m
Z
  G d de      Zy)   )InfoExtractor   )ExtractorError
clean_htmldetermine_extint_or_noneparse_iso8601url_or_none)traverse_objc                      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$dd%d&d'd(d)d*d+d,d-d.d-d/d0d1d"d2d3dd4d5d6d7d8d9d:d;d<d=d<d>d!d1d"d?d@ddAdBdCdDeedEdFdGdCdHgdIdJdKd"dLi ddMddd	dNddOddPddQdRdSdTdPdUdVdWdXdYdZd[ed\ed]ed^ed_dEdd`dadbgg dcdddedZdfdgdhd"didjdkdldmdndodpddqddrddsdtdugZdv Zyw)xMSNIEzhttps?://(?:(?: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_countr5   r6   r7   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                 z   | j                  |      j                  ddd      \  }}}| j                  d| d| |      }t        |dt        hfddt
        hfft        ht        t        fd	t        hfd
t        hfdt        hfdddt        hfddt        hfddt        hfddt        hfddt        hfd
      }|d   }t        |dt        hf      }|dk(  rdt        |d      r|r| j                  |      S g }	i }
t        |ddd f      D ]  }|d   }t        |      }|dk(  r>| j                  ||ddd       \  }}|	j                  |       | j                  ||
!       V|d"k(  r=| j!                  ||d#d$      \  }}|	j                  |       | j                  ||
!       |	j#                  t        |dd%t        hfd&t        hfd't        hfd(t        hfd)              t        |dd*d+ f      D ]>  }|j%                  d      xs d,}|
j'                  |g       j#                  |d-   d.d/       @ |||	|
d0|S |d1k(  r|st)        d2      | j                  |      S |d3k(  rPg }t        |d4dd5t        hf      D ]"  }|j#                  | j                  |             $  | j*                  ||fi |S t)        d6|       )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                     t        |d         S )Nr$   r
   _vs     ]/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/msn.py<lambda>z%MSNIE._real_extract.<locals>.<lambda>   s    epqrsxqyez     m3u8r   hlsF)m3u8_idfatal)targetmpddash)mpd_idrk   formatfileSizeheightwidth)r$   	format_idfilesizerr   rs   closedCaptionsc                     t        |d         S )Nhrefra   rb   s     re   rf   z%MSNIE._real_extract.<locals>.<lambda>   s    dopqrxpydz rg   zen-usrx   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$   rM   r   page_id	json_datacommon_metadata	page_type
source_urlrz   r{   filefile_urlr   fmtssubscaptionlangentries	embed_urls                       re   _real_extractzMSNIE._real_extract   sZ   &*&;&;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LQ[z22GI$YBVXz0{| ;#H-&=!%!I!I '5%u "J "NJD$NN4())$y)AE\!%!H!H '& "I "GJD$NN4())$y)ANN$T#(*2SE):)3k](C'/+&?&-}%=, , (	OEUWz3{| {{8,7$$T2.55"6?!7  ("&	
 "  ,&$%@AA??:..)#G))nc9WbVc5de ;	ty9:; (4''LOLL6ykBCCrg   N)__name__
__module____qualname__
_VALID_URLint_TESTSr    rg   re   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rg   r   N)commonr   utilsr   r   r   r   r	   r
   utils.traversalr   r   r   rg   re   <module>r      s'    !  +JDM JDrg   