a
    h%                     @   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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d"dd0d1dd2d3d4d5eed6d7d8d4d9gd:d;d<dd=d>dd?d@dAdBdCdAdDdEdFeeeed6dGdHdIgg dJdKdLdFdMdNdOddPdQdRdSdTdUdVdWddXddYddZd[d\gZd]d^ Zd_S )`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-AA1zMcD7ZAA1zMcD7mp4z6president-macron-interrupts-trump-over-ukraine-fundingz6President Macron interrupts Trump over Ukraine fundingz$md5:5fd3857ac25849e7a56cb25fbe1a2a8bz
k! News UKZBB1hz5Rj;   zDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1zMagX.imgzcount:14igZ20250225i@!giygZ20250308)idext
display_idtitledescriptionuploaderuploader_idduration	thumbnailtags	timestampupload_daterelease_timestamprelease_datemodified_timestampmodified_date)url	info_dictzlhttps://www.msn.com/en-gb/video/watch/films-success-saved-adam-pearsons-acting-career/vi-AA1znZGE?ocid=hpmsnZAA1znZGEz/films-success-saved-adam-pearsons-acting-careerz1Films' success saved Adam Pearson's acting careerz$md5:98c05f7bd9ab4f9c423400f62f2d3da5zSky NewsZAA2eki4   zDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1zo7nU.imgim3gZ20250219igicgZ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-AA1yLVcDZAA1yLVcDz6rock-frontman-replacements-you-might-not-know-happenedz6Rock Frontman Replacements You Might Not Know Happenedz$md5:451a125496ff0c9f6816055bb1808da9zGrunge (Video)ZBB1oveoViT  zDhttps://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1yM4OJ.imgiqgZ20250210icgiHgzhttps://www.msn.com/de-de/nachrichten/other/the-first-descendant-gameplay-trailer-zu-serena-der-neuen-gefl%C3%BCgelten-nachfahrin/vi-AA1B1d06Zx9g6oliuS   The First Descendant: Gameplay-Trailer zu Serena, der neuen geflügelten Nachfahrin ZMeinMMOZx2mvqi4    <   z.https://s1.dmcdn.net/v/Y3fO61drj56vPB9SS/x1080zThe First DescendantiMgZ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-AA1ybFaJZkQSChWu95nEz.7 Daily Habits to Nurture Your Personal Growthz$md5:6f233c68341b74dee30c8c121924e827ZTopThinkz	@TopThinkz!https://www.youtube.com/@TopThinkzUCMlGmHokrQRp-RaNO7aq4Uwz8https://www.youtube.com/channel/UCMlGmHokrQRp-RaNO7aq4UwTi  z4https://i.ytimg.com/vi/kQSChWu95nE/maxresdefault.jpgzHowto & Style)Ztopthinkz	top thinkzpersonal growthiD~fZ20240803publicZnot_live)r   r   r   r   r   r   Zuploader_urlZchannelZ
channel_idZchannel_urlZchannel_is_verifiedZchannel_follower_countZcomment_countr$   r%   r&   r   r   
categoriesr   r   r   Zplayable_in_embedZavailabilityZlive_statuszhttps://www.msn.com/en-in/news/techandscience/watch-earth-sets-and-rises-behind-moon-in-breathtaking-blue-ghost-video/ar-AA1zKoAcZAA1zKoAczHWatch: Earth sets and rises behind Moon in breathtaking Blue Ghost videoz$md5:0ad51cfa77e42e7f0c46cf98a619dbbfzIndia TodayZAAyFWGzcount:11igigiqg)r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   Z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r|r| |S g }	i }
t|dddd fD ]}|d }t|}|dkrN| 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* qt|dd+d,d fD ]2}|dpd-}|
|g |d. d/d0 q|||	|
d1|S |d2kr:|s0td3| |S |d4krg }t|d5dd6t	hfD ]}|| | q\| j||fi |S td7| d S )8Nlocaler   r   z.https://assets.msn.com/content/view/v2/Detail//r   ZabstractbodyZcreatedDateTimeZpublishedDateTimeZupdatedDateTimer   imager   ZvideoMetadataZplayTimekeywords.providername)
r   r   r   r   r   r   r   r   r   r   typeZ
sourceHrefvideo)ZthirdPartyVideoPlayerZenabledZexternalVideoFilesc                 S   s   t |d S )Nr   r	   _v r6   I/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/msn.py<lambda>       z%MSNIE._real_extract.<locals>.<lambda>Zm3u8r   ZhlsF)Zm3u8_idfatal)targetZmpdZdash)Zmpd_idr:   formatZfileSizeheightwidth)r   Z	format_idfilesizer=   r>   ZclosedCaptionsc                 S   s   t |d S )Nhrefr2   r3   r6   r6   r7   r8      r9   zen-usr@   Zttml)r   r   )r   r   formats	subtitlesZ
webcontentzCould not find source URLarticleZsocialEmbedsZpostUrlzUnsupported page type: )Z_match_valid_urlgroupZ_download_jsonr
   strr   filteranyr   r	   r   Z
url_resultr   Z#_extract_m3u8_formats_and_subtitlesextendZ_merge_subtitlesZ"_extract_mpd_formats_and_subtitlesappendget
setdefaultr   Zplaylist_result)selfr   r)   r   Zpage_idZ	json_dataZcommon_metadataZ	page_type
source_urlrA   rB   fileZfile_urlr   ZfmtssubscaptionlangentriesZ	embed_urlr6   r6   r7   _real_extract   s    















zMSNIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLintZ_TESTSrS   r6   r6   r6   r7   r      s    r   N)commonr   utilsr   r   r   r   r   r	   Zutils.traversalr
   r   r6   r6   r6   r7   <module>   s    