o
    i[                     @   sx   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	 ddl
mZ G dd	 d	eZG d
d deZG dd deZdS )    N   )InfoExtractor)	YoutubeIE   )int_or_noneparse_iso8601str_or_noneurl_or_none)traverse_objc                   @   s0   e Zd ZddddZdd Zdd Zd	d
 ZdS )
EggsBaseIEz*/*z8.2.00Android)Accept	apVersion
deviceNamec                 C   s   t d| jd< d S )N   deviceId)secrets	token_hex_API_HEADERS)self r   I/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/eggs.py_real_initialize   s   zEggsBaseIE._real_initializec                 C   s   | j d| || jdS )Nz!https://app-front-api.eggs.mu/v1/)headers)_download_jsonr   )r   endpointvideo_idr   r   r   	_call_api   s   
zEggsBaseIE._call_apic                 C   s   t |dthf }r| j|tdS t |ddthf}t |dthf}d }|r0|r0d| d| }|d|t tjd	t |d
thfdthfddthfddthfdthfdt	hfdt	hfdt	hfdtht
fddthfdthfddthfdS )N
youtubeUrl)ieartist
artistNamemusicIdzhttps://eggs.mu/artist/z/song/none)idvcodecwebpage_urlextractor_key	extractor
musicTitlemusicDataPathdisplayNameartistIdimageDataPathnumberOfMusicPlaysnumberOfLikesnumberOfCommentscomposertags.releaseDate)titleurluploaderuploader_id	thumbnail
view_count
like_countcomment_count	composersr2   	timestampr    )r
   r	   
url_resultr   r   EggsIEie_keyIE_NAMEstrr   allr   )r   datayt_urlartist_namemusic_idr&   r   r   r   _extract_music_info   s8   




zEggsBaseIE._extract_music_infoN)__name__
__module____qualname__r   r   r   rH   r   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZddddddd	ed
dgeedgdddgdddi dddddddddddddeddd d!d"d#d$d%d&d'd(ed)d*d+ed,d-d.edd/d0g d1d2d3gd4d5gd6d5id7gZd8d9 Zd:S );r?   zeggs:singlez7https?://eggs\.mu/artist/[^/?#]+/song/(?P<id>[\da-f-]+)zNhttps://eggs.mu/artist/32_sunny_girl/song/0e95fd1d-4d61-4d5b-8b18-6092c551da90z$0e95fd1d-4d61-4d5b-8b18-6092c551da90m4au   シネマと信号
Sunny Girlzre:https?://.*\.jpg(?:\?.*)?$1607i_1gu   橘高連太郎20241111	SunnyGirl)r$   extr4   r6   r8   r7   r:   r=   r<   r9   r;   artistsupload_dater2   )r5   	info_dictzLhttps://eggs.mu/artist/KAMO_3pband/song/1d4bc45f-1af6-47a9-8b30-a70cae350b4fr$   80cLKA2wnoArQ   mp4r4   u!   KAMO「いい女だから」Audior6   KAMOlive_statusnot_live
channel_idUCsHLBw2__5Q9y55skXPotOgchannel_follower_countdescriptionz$md5:d260da711ecbec3e720293dc11401b87availabilitypublicr7   z
@KAMO_bandrS   20240925r8   z4https://i.ytimg.com/vi/80cLKA2wnoA/maxresdefault.jpgr;   channel_urlz8https://www.youtube.com/channel/UCsHLBw2__5Q9y55skXPotOgr9   duration   r:   Tz"https://www.youtube.com/@KAMO_bandifr   zPeople & Blogs)channelplayable_in_embeduploader_urlr2   r=   	age_limit
categoriesYoutubeskip_download)r5   rT   add_ieparamsc                 C   s&   |  |}| d| |}| |S )Nzmusics/)	_match_idr   rH   )r   r5   song_id	json_datar   r   r   _real_extracts   s   

zEggsIE._real_extractN)rI   rJ   rK   rA   
_VALID_URLint_TESTSrp   r   r   r   r   r?   =   s    	
2r?   c                   @   sH   e Zd ZdZdZddddddd	d
dddddddd
gZdd ZdS )EggsArtistIEzeggs:artistz1https?://eggs\.mu/artist/(?P<id>\w+)/?(?:[?#&]|$)z$https://eggs.mu/artist/32_sunny_girl32_sunny_girlzXhttps://image-pro.eggs.mu/profile/1607.jpeg?updated_at=2024-04-03T20%3A06%3A00%2B09%3A00ux   Muddy Mine / 東京高田馬場CLUB PHASE / Gt.Vo 橘高 連太郎 / Ba.Cho 小野 ゆうき / Dr 大森 りゅうひこrM   )r$   r8   r]   r4      )r5   rT   playlist_mincountz"https://eggs.mu/artist/KAMO_3pbandKAMO_3pbandu   川崎発３ピースバンドzYhttps://image-pro.eggs.mu/profile/35217.jpeg?updated_at=2024-11-27T16%3A31%3A50%2B09%3A00rW   )r$   r]   r8   r4   r   c              	   C   sz   |  |}| d| |}| d| d|}| jt|ddth| jhffd|it|dthfdthfdthfd	S )
Nzartists/z/musicsrD   .playlist_idr+   profiler-   )r4   r]   r8   )rm   r   playlist_resultr
   dictrH   rB   r	   )r   r5   	artist_idartist_data	song_datar   r   r   rp      s   
zEggsArtistIE._real_extractN)rI   rJ   rK   rA   rq   rs   rp   r   r   r   r   rt   y   s*    
rt   )r   commonr   youtuber   utilsr   r   r   r	   utils.traversalr
   r   r?   rt   r   r   r   r   <module>   s    /<