
    VGhM%                     ^    d dl 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mZ  G d de      Zy)	    N   )InfoExtractor   )ExtractorErrordetermine_extextract_attributesget_element_by_classparse_durationurl_or_none)find_elementtraverse_objc                   b   e Zd ZdZdddddddd	d
ddd	dddgd
dddddddd	dddd	dddgddddddddd	dddd	dddgddddddd d!d	d"ddd	dddgd"d#d$ddgd%d&d'd(dd)d*d+d	d,d-dd	d.d(dgd,dd/dd0d1d2d	d3d-dd	d.d(dgd3dd/dd4d5d6d	d7d-dd	d.d(dgd7dd/dd8d9d:d	d;d-dd	d.d(dgd;d#d/dgd%gZd< Zy=)>NekoHackerIEz<https?://(?:www\.)?nekohacker\.com/(?P<id>(?!free-dl)[\w-]+)z!https://nekohacker.com/nekoverse/	nekoverse	Nekoverse)idtitlezBhttps://nekohacker.com/wp-content/uploads/2022/11/01-Spaceship.mp3 44223701ebedba0467ebda4cc07fb3aa1712mp3	SpaceshipzQhttps://nekohacker.com/wp-content/uploads/2022/11/Nekoverse_Artwork-1024x1024.jpgnone20221101Neko Hackerr   g     `h@)r   extr   	thumbnailvcodecacodecrelease_datealbumartiststracktrack_numberduration)urlmd5	info_dictzDhttps://nekohacker.com/wp-content/uploads/2022/11/02-City-Runner.mp3 8f853c71719389d32bbbd3f1a87b3f081713zCity Runnerr   g     b@zDhttps://nekohacker.com/wp-content/uploads/2022/11/03-Nature-Talk.mp3 5a8a8ae852720cee4c0ac95c7d1a74501714zNature Talk   g     e@zFhttps://nekohacker.com/wp-content/uploads/2022/11/04-Crystal-World.mp3 d8e59a48061764e50d92386a294abd501715zCrystal World   g     h@)r%   r'   playlistzhttps://nekohacker.com/susume/susumeu!   進め！むじなカンパニーu   https://nekohacker.com/wp-content/uploads/2021/01/進め！むじなカンパニー-feat.-六科なじむ-CV_-日高里菜-割戶真友-CV_-金元寿子-軽井沢ユキ-CV_-上坂すみれ-出稼ぎガルシア-CV_-金子彩花-.mp3 fb13f008aa81f26ba48f91fd2d6186ce711z$md5:1a5fcbc96ca3c3265b1c6f9f79f30fd0uE   https://nekohacker.com/wp-content/uploads/2021/01/OP表-1024x1024.png20210115)r   r   r   r   r   r   r   r    r!   r"   r#   ut   https://nekohacker.com/wp-content/uploads/2021/01/むじな-de-なじむ-feat.-六科なじむ-CV_-日高里菜-.mp3 028803f70241df512b7764e73396fdd1709u@   むじな de なじむ feat. 六科なじむ (CV: 日高里菜 )ud   https://nekohacker.com/wp-content/uploads/2021/01/進め！むじなカンパニー-instrumental.mp3 adde9e9a16e1da5e602b579c247d0fb9710u0   進め！むじなカンパニー (instrumental)uY   https://nekohacker.com/wp-content/uploads/2021/01/むじな-de-なじむ-instrumental.mp3 ebb0443039cf5f9ff7fd557ed9b23599712u%   むじな de なじむ (instrumental)c                    | j                  |      }| j                  ||      }t        d|      }|sht        |t	        dd      ht
        hdt        hf      }|st        d      t        j                  d|      rt        dd	      | j                  |d
      S | j                  d|d|i       }g }t        t        j                  d|      d      D ]{  \  }}	t        t        |	      dt        hfdt        hfdddddt        hfdd hdfd      }
|j!                  i |
t        |j#                  d            |dgd|
d   dk(  rdnd d       } | j%                  ||t        |d            S ) Nr0   iframeT)taghtmlsrcz%No playlist or embed found in webpagez https?://(?:\w+\.)?spotify\.com/z Spotify embeds are not supported)expectedGenericz"var srp_player_params_[\da-f]+\s*=zplayer params)defaultz(<li[^>]+data-audiopath[^>]+>)r   zdata-audiopathzdata-trackidzdata-tracktitlezdata-albumtitlezdata-tracktimezdata-releasedatec                 N    t        j                  d| j                  dd            S )Nz\d{8}. )rematchreplace)xs    d/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/nekohacker.py<lambda>z,NekoHackerIE._real_extract.<locals>.<lambda>   s!    STS\S\]`bdSe@f     r   )r%   r   r   r   r"   r    r$   r   artworkr   r   r   r   )r   r#   r!   r   r   )r   r    )	_match_id_download_webpager	   r   r   r   r   r   rF   rG   
url_result_search_json	enumeratefindallr   r
   appendgetplaylist_result)selfr%   playlist_idwebpager0   
iframe_srcplayer_paramsentriesr#   r"   entrys              rJ   _real_extractzNekoHackerIE._real_extract   s   nnS)((k:'
G<%g(67:L9MuWbVc0e fJ$%LMM=zJ$%GRVWW??3	22))17O[bd * f #,RZZ8Y[c-dfg#h 	L% !3E!:(;-8(=/:$***-/?@!36f5gij k	= 	E NN ():):9)EF ,)? #(<5#8%d 	( ##G[,wP\:]^^rL   N)__name__
__module____qualname__
_VALID_URL_TESTSr^    rL   rJ   r   r      s   PJ2 
 \9  (!t$#$.( -($% %& ^9  *!t$#$.( -*$% %& ^9  *!t$#$.( -*$% %& `9  ,!t$#$.( -,$% %oI
Pb 08
 B9 C!h$#$.@ -C$%$ N9 _!h$#$.@ -_$%$ ~9 O!h$#$.@ -O$%$ s9 D!h$#$.@ -D$%iE
La\F|'_rL   r   )rF   commonr   utilsr   r   r   r	   r
   r   utils.traversalr   r   r   rd   rL   rJ   <module>rh      s*    	 !  9G_= G_rL   