o
    i*                     @   sh   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
mZmZmZ ddlmZ G dd	 d	eZdS )
    N   )InfoExtractor)	YoutubeIE   )ExtractorErrorbug_reports_messageint_or_none	qualitiesstr_or_none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gdeddddded d!d"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gdedddd*ded d!d"d+d,d-d.d/d0d1d0d1d2d3ed4d5d6d7d-d.d/d0d1d0d1d2d3edd8ed9d:id6d;d-d.d/d0d1d0d1d2d3edd<ed9d:id6d=d-d.d/d0d1d0d1d2d3edd>ed9d:igd?d@dAi ddBddCdDdEddFddGddHddIdeddJddKded dLdMdNdOdPdQedRed
dSdTeeeeeedTdUdVdWgdXgZdYZ	dZd[ Z
d\d] Zd^S )_BoostyIEzJhttps?://(?:www\.)?boosty\.to/(?P<user>[^/#?]+)/posts/(?P<post_id>[^/#?]+)zEhttps://boosty.to/kuplinov/posts/e55d050c-e3bb-4873-a7db-ac7a49b40c38idz$d7473824-352e-48e2-ae53-d4aa39459968titleu"   Бан? А! Бан! (Phasmophobia)	alt_titlechannelKuplinov
channel_id7958701	timestampiȥbupload_date20220612release_timestampi(brelease_datemodified_timestampigmodified_date20250330tagsu   куплиновphasmophobia
like_countextmp4durationi   
view_count	thumbnailz(re:^https://iv\.okcdn\.ru/videoPreview\?)url	info_dictzEhttps://boosty.to/kuplinov/posts/cc09b7f9-121e-40b8-9392-4a075ef2ce53z$fb5ea762-6303-4557-9a17-157947326810un   Какая там активность была? Не слышу! Повтори еще пару раз! (Phasuw   Какая там активность была? Не слышу! Повтори еще пару раз! (Phasmophobia)izȥbibihg'   zEhttps://boosty.to/maddyson/posts/0c652798-3b35-471f-8b48-a76a0b28736fz$0c652798-3b35-471f-8b48-a76a0b28736fu+   то что не пропустил юта6u   Илья Давыдов6808257id20230906iyd20230907)r   r   r   r   r   r   r   r   r   r   r      r'   z$cc325a9f-a563-41c6-bf47-516c1b506c9aiy  z're:^https://i\.mycdn\.me/videoPreview\?)r   r   r   r   r   r   r   r   r   r   r   r    r"   r$   r%   z$d07b0a72-9493-4512-b54e-55ce468fd4b7ihd  z$4a3bba32-78c8-422a-9432-2791aff60b42i{|  zpost has been deleted)r&   r'   playlist_countplaylistskipzRhttps://boosty.to/futuremusicproduction/posts/32a8cae2-3252-49da-b285-0e014bc6e565z-37FW_YQ3B4zAfro | Deep House FREE FLP
media_typevideo20250829iUhzFuture Music Productionzcount:0m4a   zre:^https://i\.ytimg\.com/	age_limitr   availabilitypublic
categorieschannel_follower_countzUCKVYrFBYmci1e-T8NeHw2qgzre:^https://www\.youtube\.com/)channel_urlcomment_countdescriptionlive_statusplayable_in_embeduploaderuploader_iduploader_urlz)Remote components challenge solver scriptzn challenge solving failed)r&   r'   expected_warnings)tinylowestlowmediumhighfull_hdquad_hdultra_hdc              	   C   s   g }t | j}t|dd D ]G}|d }|d}|dv r*|| j||ddd q|d	v r;|| j||d
dd q|| jv rM||d|||d q| d| q|S )Nc                 S   s   t |d S )Nr&   )r   )_v rM   K/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/boosty.py<lambda>   s    z+BoostyIE._extract_formats.<locals>.<lambda>r&   type)hlshls_livelive_ondemand_hlslive_playback_hlsrQ   F)m3u8_idfatal)dash	dash_livelive_playback_dashrW   )mpd_idrV   r!   )r&   r    	format_idqualityzUnknown format type: )	r	   
_MP4_TYPESr   getextend_extract_m3u8_formats_extract_mpd_formatsappendreport_warning)selfplayer_urlsvideo_idformatsr\   
player_urlr&   format_typerM   rM   rN   _extract_formats   s$   



zBoostyIE._extract_formatsc                 C   sZ  |  |dd\}}i }| dd}|d urDzttj|j	}d|d  |d< W n tj
tfyC   | dt   Y nw | jd	| d
| |dd|d}|d}|ss| d | j||d}	| j|	d dpr| |	}d|it|ddthfddth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}
g }t|ddthfD ]S}|d}|dkrt|dr|| |d t q|d kr|dp|}|||| |d!|d"|
t|dthfd#thfd$thfd%thfd&d'd( q|s|d)s| jd*d+d, n	|std-d+d.t|d/kr"|d0 S | j|||fi |
S )1Nuserpost_idzhttps://boosty.to/authzBearer accessTokenAuthorizationz(Failed to extract token from auth cookiezhttps://api.boosty.to/v1/blog/z/post/zDownloading post datazUnable to download post data)noteerrnoteheadersr   z?Unable to extract post title. Falling back to parsing html page)rf   )defaultnamer   	createdAtpublishTime	updatedAtr   .countlikes)r   r   r   r   r   r   r   datarP   r1   r&   ok_video
playerUrls)r   r   rg   r"   viewsCounter)previewdefaultPreview)r   r"   r$   r%   F)get_all	hasAccessz!This post requires a subscriptionT)metadata_availablezNo videos found)expectedr   r   ) _match_valid_urlgroup_get_cookiesr^   jsonloadsurllibparseunquotevalueJSONDecodeErrorKeyErrorrc   r   _download_json_download_webpage_og_search_title_html_extract_titler   strr
   r   dictr   rb   
url_resultr   rj   raise_login_requiredr   lenplaylist_result)rd   r&   rk   rl   auth_headersauth_cookie	auth_datapost
post_titlewebpagecommon_metadataentriesitem	item_typerf   rM   rM   rN   _real_extract   s|   





zBoostyIE._real_extractN)__name__
__module____qualname__
_VALID_URLintlistr   bool_TESTSr]   rj   r   rM   rM   rM   rN   r      s   	
	
7K	
 r   )r   urllib.parser   commonr   youtuber   utilsr   r   r   r	   r
   r   utils.traversalr   r   rM   rM   rM   rN   <module>   s     