o
    i%                     @   sL   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 deZdS )   )InfoExtractor   )ExtractorError
clean_htmldetermine_extint_or_noneparse_iso8601url_or_none)traverse_objc                   @   s  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dvdw ZdxS )y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_countr3   r4   r5   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                 C   s  |  |ddd\}}}| 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rt|drq|rq| |S g }	i }
t|dddd fD ]]}|d }t|}|dkr| j||ddd d!\}}|	| | j||
d" q|d#kr| j||d$d d%\}}|	| | j||
d" q|	t|dd&thfd't
hfd(t
hfd)t
hfd* qt|dd+d,d fD ]}|dpd-}|
|g |d. d/d0 q|||	|
d1|S |d2kr|std3| |S |d4kr@g }t|d5dd6t	hfD ]}|| | q*| j||fi |S td7| )8N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                 S      t |d S )Nr"   r	   _v rb   H/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/msn.py<lambda>       z%MSNIE._real_extract.<locals>.<lambda>m3u8r   hlsF)m3u8_idfatal)targetmpddash)mpd_idri   formatfileSizeheightwidth)r"   	format_idfilesizerp   rq   closedCaptionsc                 S   r]   )Nhrefr^   r_   rb   rb   rc   rd      re   zen-usru   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"   rJ   r   page_id	json_datacommon_metadata	page_type
source_urlrw   rx   filefile_urlr   fmtssubscaptionlangentries	embed_urlrb   rb   rc   _real_extract   s   














zMSNIE._real_extractN)__name__
__module____qualname__
_VALID_URLint_TESTSr   rb   rb   rb   rc   r      s4   	
	
 r   N)commonr   utilsr   r   r   r   r   r	   utils.traversalr
   r   rb   rb   rb   rc   <module>   s     