
    V|hM%                     ^    S SK r SSKJr  SSKJrJrJrJrJrJ	r	  SSK
JrJr   " S S\5      rg)	    N   )InfoExtractor   )ExtractorErrordetermine_extextract_attributesget_element_by_classparse_durationurl_or_none)find_elementtraverse_objc                   j   \ rS rSrSrSSSS.SSS	S
SSSS
SSS/SSSS.S.SSSS
SSSS
SSS/SSSS.S.SSSS
SSSS
SSS/SSSS.S.S S!S"S
S#SSS
SSS/S#S$S%S.S./S&.S'S(S)S.S*S+S,S
S-S.SS
S/S)S/S-SS0.S.S1S2S3S
S4S.SS
S/S)S/S4SS0.S.S5S6S7S
S8S.SS
S/S)S/S8SS0.S.S9S:S;S
S<S.SS
S/S)S/S<S$S0.S./S&./rS= rS>rg?)@NekoHackerIE   z<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                    U R                  U5      nU R                  X5      n[        SU5      nU(       dm  [        U[	        SSS91[
        1S[        145      nU(       d  [        S5      e[        R                  " SU5      (       a
  [        SSS	9eU R                  US
5      $ U R                  SUSU0 S9n/ n[        [        R                  " SU5      S5       H|  u  p[        [        U	5      S[        14S[        14SSSSS[        14SS 1S4S.5      n
UR!                  0 U
E[        UR#                  S5      5      US/SU
S   S:X  a  SOS S.E5        M~     U R%                  Xr[        US5      5      $ ) Nr1   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                 P    [         R                  " SU R                  SS5      5      $ )Nz\d{8}. )rematchreplace)xs    U/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/nekohacker.py<lambda>,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   rG   rH   
url_result_search_json	enumeratefindallr   r
   appendgetplaylist_result)selfr&   playlist_idwebpager1   
iframe_srcplayer_paramsentriesr$   r#   entrys              rK   _real_extractNekoHackerIE._real_extract   s   nnS)((:'
G<%g(67:L9MuWbVc0e fJ$%LMM=zJ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  $i( ##G,wP\:]^^rN    N)__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSr`   __static_attributes__rb   rN   rK   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|'_rN   r   )rG   commonr   utilsr   r   r   r	   r
   r   utils.traversalr   r   r   rb   rN   rK   <module>rm      s*    	 !  9G_= G_rN   