
    Ği0                        d dl Z d dlZddlmZ ddlmZmZmZm	Z	m
Z
  G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    N   )InfoExtractor   )ExtractorErrorInAdvancePagedList
clean_htmlget_element_by_idremove_startc            
       d    e 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gZddZdS )
KuwoBaseIEaped   formatext
preferencemp3-320mp3320kmp3i@  P   )r   r   brabrr   zmp3-192192kmp3   F   zmp3-128128kmp3   <   wma   aac0   
   )r   r   r   r   Fc           
         g }| j         D ]}|d         |                    dd          d| ddd}|                     d|d	                    |d
                   ||                                           }|dk    r|st          dd          |                    d          r@|                    ||d
         |d
         |d         |                    d          d           |S )Nr   r    MUSIC_convert_urlurl)r   r   ridtyperesponsez http://antiserver.kuwo.cn/anti.szDownload {} url infor   )notequeryheadersIPDenyz#This song is blocked in this regionTexpected)zhttp://zhttps://r   r   )r(   	format_idr   qualityr   )_FORMATSget_download_webpager   geo_verification_headersr   
startswithappend)selfsong_idtolerate_ip_denyformatsfile_formatr-   song_urls          ZC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/kuwo.py_get_formatszKuwoBaseIE._get_formats   s(   = 	 	K%e,!oodB//)))%! E --24;;K<QRRT%B%B%D%D .  H 8##,<#$%JUYZZZZ""#:;; #!,X!6)(3*<8&??511           N)F)__name__
__module____qualname__r4   rA    rB   r@   r   r      s        c::U)CWYZZU)CWYZZU)CWYZZb99rDDH     rB   r   c            	       d    e Zd ZdZd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iddddgZd ZdS )KuwoIEFz	kuwo:songu   酷我音乐z.https?://(?:www\.)?kuwo\.cn/yinyue/(?P<id>\d+)z!http://www.kuwo.cn/yinyue/635632/635632r   u   爱我别走u	   张震岳20080122z$md5:ed13f58e3c3bf3f7fd9fbc4e5a7aa75c)idr   titlecreatorupload_datedescription6this song has been offline because of copyright issues)r(   	info_dictskipz"http://www.kuwo.cn/yinyue/6446136/6446136r   u   心z$md5:5d0e947b242c35dc0eb1d2fce9fbf02cIU20150518)rK   r   rL   rO   rM   rN   r   r   r(   rQ   paramsz3http://www.kuwo.cn/yinyue/3197154?catalog=yueku2016T)r(   only_matchingc                 x   |                      |          }|                     ||dd          \  }}||j        vsd|v rt          dd          |                     d|d	          }t          |                     d
|dd          d          }t          t          d|                    }|dk    rd }|                     |          }|                     d|dd          }	d }
|	N| 	                    d|	 d|dd          }|                     d|dd          }
|
r|

                    dd          }
||||
||dS )NzDownload song detail infozUnable to get song detail infor,   errnoteuK   对不起，该歌曲由于版权问题已被下线，将返回网站首页rP   Tr0   z<p[^>]+id="lrcName">([^<]+)</p>z	song namez@<a[^>]+href="http://www\.kuwo\.cn/artist/content\?name=([^"]+)">singer nameF)fatalu   歌手
lrcContent   暂无z/<a[^>]+href="http://www\.kuwo\.cn/album/(\d+)/"zalbum idzhttp://www.kuwo.cn/album//zDownload album detail infozUnable to get album detail infou"   发行时间：(\d{4}-\d{2}-\d{2})zpublish time-r%   )rK   rL   rM   rN   rO   r=   )	_match_id_download_webpage_handler(   r   _html_search_regexr
   r   r	   rA   r6   replace)r:   r(   r;   webpageurlh	song_namesinger_namelrc_contentr=   album_idpublish_timealbum_info_pages               r@   _real_extractzKuwoIE._real_extractZ   s   ..%%55:4 6 6 6 $(""&sw~&~&~ !Ydhiiii++.F F	"4#:#:O]% $; $1 $12:< < !!2<!I!IJJ(""K##G,,**>Zu + . . "447H77719 5 ; ;O
  225e 3 - -L  =+33C<< "'&
 
 	
rB   N)	rC   rD   rE   _WORKINGIE_NAMEIE_DESC
_VALID_URL_TESTSrn   rF   rB   r@   rH   rH   8   s        HGGBJ2#"%A
 
 I  4A%
 
 i
  E 1F:+
 +
 +
 +
 +
rB   rH   c                   8    e Zd ZdZdZdZdZddddd	d
dZd ZdS )KuwoAlbumIEFz
kuwo:albumu   酷我音乐 - 专辑z/https?://(?:www\.)?kuwo\.cn/album/(?P<id>\d+?)/z http://www.kuwo.cn/album/502294/502294u   Made Series 《M》z$md5:d463f0d8a0ff3c3ea3d6ed7452a9483frK   rL   rO   r   )r(   rQ   playlist_countc                 \                          |          }                     ||dd          }                     d|d          }t          t	          t          d|                    | d          } fdt          j        d	|          D             }                     ||||          S )
NzDownload album infozUnable to get album inforZ   z1<div[^>]+class="comm"[^<]+<h1[^>]+title="([^"]+)"z
album nameintro	   简介：c                 <    g | ]}                     |d           S Kuwo
url_result.0r?   r:   s     r@   
<listcomp>z-KuwoAlbumIE._real_extract.<locals>.<listcomp>   s4     
 
 
2:DOOHf--
 
 
rB   zF<p[^>]+class="listen"><a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+/)")	rb   r6   rd   r
   r   r	   refindallplaylist_result)r:   r(   rk   rf   
album_namealbum_introentriess   `      r@   rn   zKuwoAlbumIE._real_extract   s    >>#&&(( 5. ) 0 0 ,,@' 
 #('::;;$$$& &
 
 
 
>@jY? ?
 
 

 ##GXz;OOOrB   N	rC   rD   rE   ro   rp   rq   rr   _TESTrn   rF   rB   r@   ru   ru      sc        HG%GCJ10A
 

  EP P P P PrB   ru   c                   4    e Zd ZdZdZdZdZdddidd	Zd
 ZdS )KuwoChartIEFz
kuwo:chartu   酷我音乐 - 排行榜z5https?://yinyue\.kuwo\.cn/billboard_(?P<id>[^.]+).htmu9   http://yinyue.kuwo.cn/billboard_香港中文龙虎榜.htmrK   u   香港中文龙虎榜   r(   rQ   playlist_mincountc                                            |          }                     ||dd          } fdt          j        d|          D             }                     ||          S )NzDownload chart infozUnable to get chart inforZ   c                 <    g | ]}                     |d           S r}   r   r   s     r@   r   z-KuwoChartIE._real_extract.<locals>.<listcomp>   s4     
 
 
2:DOOHf--
 
 
rB   z.<a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+))rb   r6   r   r   r   )r:   r(   chart_idrf   r   s   `    r@   rn   zKuwoChartIE._real_extract   s    >>#&&(( 5. ) 0 0
 
 
 
>@jA7?L ?L
 
 
 ##GX666rB   Nr   rF   rB   r@   r   r      sV        HG(GIJJ)
  E
7 
7 
7 
7 
7rB   r   c                   N    e Zd ZdZdZdZdZddddd	d
dddddddgZdZd Z	dS )KuwoSingerIEFzkuwo:singeru   酷我音乐 - 歌手z2https?://(?:www\.)?kuwo\.cn/mingxing/(?P<id>[^/]+)z'http://www.kuwo.cn/mingxing/bruno+mars/z
bruno+marsu   Bruno Mars)rK   rL   iI  r   z)http://www.kuwo.cn/mingxing/Ali/music.htmAli_   zRegularly stalls travis build)r(   rQ   r   rR      c                 t                                                         dd          }                     d|d          }                     d|d          t                               d|d	                    } fd
}t	          || j                  }                     ||          S )NzDownload singer infozUnable to get singer inforZ   z<h1>([^<]+)</h1>r\   zdata-artistid="(\d+)"z	artist idzdata-page="(\d+)"z
page countc           
                               dd| dz    d| dz    | j        d          }fdt          j        d|          D             S )	Nz+http://www.kuwo.cn/artist/contentMusicsAjaxzDownload song list page #r   zUnable to get song list page #)artistIdpnrn)r,   r[   r-   c                 x    g | ]6}                     t          j                            |          d           7S r}   )r   urllibparseurljoin)r   r?   r:   r(   s     r@   r   zAKuwoSingerIE._real_extract.<locals>.page_func.<locals>.<listcomp>   sI         4 4S( C CVLL  rB   z0<div[^>]+class="name"><a[^>]+href="(/yinyue/\d+))r6   	PAGE_SIZEr   r   )page_numrf   	artist_idr:   	singer_idr(   s     r@   	page_funcz-KuwoSingerIE._real_extract.<locals>.page_func   s    ,,= JHqL J JGAGG#,HDNSS	 - U UG     "
G! !   rB   )rb   r6   rd   intr   r   r   )	r:   r(   rf   ri   
page_countr   r   r   r   s	   ``     @@r@   rn   zKuwoSingerIE._real_extract   s    NN3''	((!7/ ) 1 1 ---9 9 ++$g{< <	 00 '<9 9 : :
	 	 	 	 	 	 	 	 %Y
DNKK##GYDDDrB   N)
rC   rD   rE   ro   rp   rq   rr   rs   r   rn   rF   rB   r@   r   r      s        HG%GFJ8$
 
 !  ;
 
  / F" IE E E E ErB   r   c                   8    e Zd ZdZdZdZdZddddd	d
dZd ZdS )KuwoCategoryIEFzkuwo:categoryu   酷我音乐 - 分类z3https?://yinyue\.kuwo\.cn/yy/cinfo_(?P<id>\d+?).htmz(http://yinyue.kuwo.cn/yy/cinfo_86375.htm86375u   八十年代精选u*   这些都是属于八十年代的回忆！rw      r   c                                           |          }                     ||dd          }                     d|d          }t          t	          d|                                          | d          }|dk    rd }                                          d	|d
          |          } fd|d         D             }                     ||||          S )NzDownload category infozUnable to get category inforZ   z&<h1[^>]+title="([^<>]+?)">[^<>]+?</h1>zcategory namerz   r{   r_   zvar\s+jsonm\s*=\s*([^;]+);zcategory songsc                 n    g | ]1}                     d                     |d                   d          2S )zhttp://www.kuwo.cn/yinyue/{}/musicridr~   )r   r   )r   songr:   s     r@   r   z0KuwoCategoryIE._real_extract.<locals>.<listcomp>"  sL     
 
 
 OO;BB4
CSTTV\]]
 
 
rB   	musiclist)rb   r6   rd   r
   r	   strip_parse_jsonr   )r:   r(   category_idrf   category_namecategory_descjsonmr   s   `       r@   rn   zKuwoCategoryIE._real_extract  s    nnS))((#;1 ) 3 3 //5wQ Q %gw//5577''') ) H$$ M  !8!8)74D"F "FGRT T
 
 
 
k*
 
 
 ##G[-WWWrB   Nr   rF   rB   r@   r   r     sc        HG%GGJ9)G
 

   EX X X X XrB   r   c                   h    e Zd ZdZdZdZdZddddd	d
ddidZg ej	        ddddddddZ	d Z
dS )KuwoMvIEFzkuwo:mvu   酷我音乐 - MVz,https?://(?:www\.)?kuwo\.cn/mv/(?P<id>\d+?)/zhttp://www.kuwo.cn/mv/6480076/6480076mp4z
My HouseMV2PM)rK   r   rL   rM   r   mvrV   mkv   r      c                    |                      |          }|                     ||d| d|           }t          j        d|          }|r+|                    d          }|                    d          }nt          d          |                     |d	          }|                     d
| |d| d          }|                    |dd           ||||dS )NzDownload mv detail info: zUnable to get mv detail info: rZ   zH<h1[^>]+title="(?P<song>[^"]+)">[^<]+<span[^>]+title="(?P<singer>[^"]+)"r   singerz#Unable to find song or singer namesT)r<   z)http://www.kuwo.cn/yy/st/mvurl?rid=MUSIC_z	Download z MV URL)r,   r   )r(   r2   )rK   rL   rM   r=   )rb   r6   r   searchgroupr   rA   r9   )	r:   r(   r;   rf   mobjrh   ri   r=   mv_urls	            r@   rn   zKuwoMvIE._real_extractB  s4   ..%%((D7DD>W>> ) @ @ yW   	H

6**I**X..KK !FGGG##Gd#CC''AAA6g666 ( 8 8 	
 
 	 	 	 "	
 
 	
rB   N)rC   rD   rE   ro   rp   rq   rr   r   r   r4   rn   rF   rB   r@   r   r   )  s        HG!G@J/!	
 
 d
 E<		<c::< c::<H

 
 
 
 
rB   r   )r   urllib.parser   commonr   utilsr   r   r   r	   r
   r   rH   ru   r   r   r   r   rF   rB   r@   <module>r      s   				     ! ! ! ! ! !             ' ' ' ' ' ' ' 'TM
 M
 M
 M
 M
Z M
 M
 M
`"P "P "P "P "P- "P "P "PJ7 7 7 7 7- 7 7 747E 7E 7E 7E 7E= 7E 7E 7Et%X %X %X %X %X] %X %X %XP7
 7
 7
 7
 7
z 7
 7
 7
 7
 7
rB   