@neteasecloudmusicapienhanced/api 4.31.0 → 4.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/LICENSE +21 -21
  2. package/README.MD +248 -251
  3. package/app.js +18 -18
  4. package/data/china_ip_ranges.txt +4147 -4147
  5. package/data/deviceid.txt +24641 -24641
  6. package/generateConfig.js +24 -24
  7. package/interface.d.ts +1843 -1836
  8. package/main.js +63 -63
  9. package/module/activate_init_profile.js +9 -9
  10. package/module/aidj_content_rcmd.js +28 -28
  11. package/module/album.js +6 -6
  12. package/module/album_detail.js +12 -12
  13. package/module/album_detail_dynamic.js +12 -12
  14. package/module/album_list.js +16 -16
  15. package/module/album_list_style.js +15 -15
  16. package/module/album_new.js +11 -11
  17. package/module/album_newest.js +6 -6
  18. package/module/album_privilege.js +9 -9
  19. package/module/album_songsaleboard.js +19 -19
  20. package/module/album_sub.js +10 -10
  21. package/module/album_sublist.js +11 -11
  22. package/module/api.js +21 -21
  23. package/module/artist_album.js +15 -15
  24. package/module/artist_desc.js +9 -9
  25. package/module/artist_detail.js +10 -10
  26. package/module/artist_detail_dynamic.js +9 -9
  27. package/module/artist_fans.js +11 -11
  28. package/module/artist_follow_count.js +13 -13
  29. package/module/artist_list.js +33 -33
  30. package/module/artist_mv.js +12 -12
  31. package/module/artist_new_mv.js +12 -12
  32. package/module/artist_new_song.js +12 -12
  33. package/module/artist_songs.js +12 -12
  34. package/module/artist_sub.js +11 -11
  35. package/module/artist_sublist.js +11 -11
  36. package/module/artist_top_song.js +8 -8
  37. package/module/artist_video.js +15 -15
  38. package/module/artists.js +6 -6
  39. package/module/audio_match.js +19 -19
  40. package/module/avatar_upload.js +22 -22
  41. package/module/banner.js +16 -16
  42. package/module/batch.js +12 -12
  43. package/module/broadcast_category_region_get.js +11 -11
  44. package/module/broadcast_channel_collect_list.js +12 -12
  45. package/module/broadcast_channel_currentinfo.js +13 -13
  46. package/module/broadcast_channel_list.js +13 -13
  47. package/module/broadcast_sub.js +12 -12
  48. package/module/calendar.js +8 -8
  49. package/module/captcha_sent.js +11 -11
  50. package/module/captcha_verify.js +11 -11
  51. package/module/cellphone_existence_check.js +10 -10
  52. package/module/check_music.js +30 -30
  53. package/module/cloud.js +164 -164
  54. package/module/cloud_import.js +39 -39
  55. package/module/cloud_lyric_get.js +11 -11
  56. package/module/cloud_match.js +13 -13
  57. package/module/cloud_upload_complete.js +72 -72
  58. package/module/cloud_upload_token.js +111 -111
  59. package/module/cloudsearch.js +13 -13
  60. package/module/comment.js +30 -30
  61. package/module/comment_album.js +16 -16
  62. package/module/comment_dj.js +16 -16
  63. package/module/comment_event.js +15 -15
  64. package/module/comment_floor.js +16 -16
  65. package/module/comment_hot.js +18 -18
  66. package/module/comment_hug_list.js +20 -20
  67. package/module/comment_info_list.js +30 -30
  68. package/module/comment_like.js +20 -20
  69. package/module/comment_music.js +16 -16
  70. package/module/comment_mv.js +16 -16
  71. package/module/comment_new.js +37 -37
  72. package/module/comment_playlist.js +16 -16
  73. package/module/{comment_delete.js → comment_report.js} +11 -10
  74. package/module/comment_video.js +16 -16
  75. package/module/countries_code_list.js +6 -6
  76. package/module/creator_authinfo_get.js +6 -6
  77. package/module/daily_signin.js +16 -16
  78. package/module/digitalAlbum_detail.js +13 -13
  79. package/module/digitalAlbum_ordering.js +22 -22
  80. package/module/digitalAlbum_purchased.js +15 -15
  81. package/module/digitalAlbum_sales.js +13 -13
  82. package/module/djRadio_top.js +15 -15
  83. package/module/dj_banner.js +6 -6
  84. package/module/dj_category_excludehot.js +10 -10
  85. package/module/dj_category_recommend.js +10 -10
  86. package/module/dj_catelist.js +6 -6
  87. package/module/dj_detail.js +9 -9
  88. package/module/dj_difm_all_style_channel.js +9 -9
  89. package/module/dj_difm_channel_subscribe.js +9 -9
  90. package/module/dj_difm_channel_unsubscribe.js +9 -9
  91. package/module/dj_difm_playing_tracks_list.js +11 -11
  92. package/module/dj_difm_subscribe_channels_get.js +13 -13
  93. package/module/dj_hot.js +10 -10
  94. package/module/dj_paygift.js +15 -15
  95. package/module/dj_personalize_recommend.js +12 -12
  96. package/module/dj_program.js +12 -12
  97. package/module/dj_program_detail.js +9 -9
  98. package/module/dj_program_toplist.js +10 -10
  99. package/module/dj_program_toplist_hours.js +13 -13
  100. package/module/dj_radio_hot.js +11 -11
  101. package/module/dj_recommend.js +6 -6
  102. package/module/dj_recommend_type.js +32 -32
  103. package/module/dj_sub.js +10 -10
  104. package/module/dj_sublist.js +11 -11
  105. package/module/dj_subscriber.js +12 -12
  106. package/module/dj_today_perfered.js +13 -13
  107. package/module/dj_toplist.js +14 -14
  108. package/module/dj_toplist_hours.js +10 -10
  109. package/module/dj_toplist_newcomer.js +9 -9
  110. package/module/dj_toplist_pay.js +9 -9
  111. package/module/dj_toplist_popular.js +10 -10
  112. package/module/eapi_decrypt.js +27 -27
  113. package/module/event.js +10 -10
  114. package/module/event_del.js +9 -9
  115. package/module/event_forward.js +11 -11
  116. package/module/fanscenter_basicinfo_age_get.js +6 -6
  117. package/module/fanscenter_basicinfo_gender_get.js +10 -10
  118. package/module/fanscenter_basicinfo_province_get.js +10 -10
  119. package/module/fanscenter_overview_get.js +6 -6
  120. package/module/fanscenter_trend_list.js +10 -10
  121. package/module/fm_trash.js +11 -11
  122. package/module/follow.js +11 -11
  123. package/module/get_userids.js +7 -7
  124. package/module/history_recommend_songs.js +11 -11
  125. package/module/history_recommend_songs_detail.js +13 -13
  126. package/module/homepage_block_page.js +8 -8
  127. package/module/homepage_dragon_ball.js +10 -10
  128. package/module/hot_topic.js +10 -10
  129. package/module/hug_comment.js +16 -16
  130. package/module/inner_version.js +16 -16
  131. package/module/like.js +13 -13
  132. package/module/likelist.js +9 -9
  133. package/module/listen_data_realtime_report.js +11 -11
  134. package/module/listen_data_report.js +12 -12
  135. package/module/listen_data_today_song.js +9 -9
  136. package/module/listen_data_total.js +9 -9
  137. package/module/listen_data_year_report.js +9 -9
  138. package/module/listentogether_accept.js +13 -13
  139. package/module/listentogether_end.js +9 -9
  140. package/module/listentogether_heatbeat.js +12 -12
  141. package/module/listentogether_play_command.js +21 -21
  142. package/module/listentogether_room_check.js +9 -9
  143. package/module/listentogether_room_create.js +9 -9
  144. package/module/listentogether_status.js +10 -10
  145. package/module/listentogether_sync_list_command.js +26 -26
  146. package/module/listentogether_sync_playlist_get.js +13 -13
  147. package/module/login.js +41 -41
  148. package/module/login_cellphone.js +40 -40
  149. package/module/login_qr_check.js +29 -29
  150. package/module/login_qr_create.js +30 -30
  151. package/module/login_qr_key.js +19 -19
  152. package/module/login_refresh.js +21 -21
  153. package/module/login_status.js +21 -21
  154. package/module/logout.js +6 -6
  155. package/module/lyric.js +14 -14
  156. package/module/lyric_new.js +17 -17
  157. package/module/mlog_music_rcmd.js +13 -13
  158. package/module/mlog_to_video.js +13 -13
  159. package/module/mlog_url.js +11 -11
  160. package/module/msg_comments.js +17 -17
  161. package/module/msg_forwards.js +11 -11
  162. package/module/msg_notices.js +10 -10
  163. package/module/msg_private.js +11 -11
  164. package/module/msg_private_history.js +12 -12
  165. package/module/msg_recentcontact.js +11 -11
  166. package/module/music_first_listen_info.js +13 -13
  167. package/module/musician_cloudbean.js +7 -7
  168. package/module/musician_cloudbean_obtain.js +14 -14
  169. package/module/musician_data_overview.js +11 -11
  170. package/module/musician_play_trend.js +14 -14
  171. package/module/musician_sign.js +7 -7
  172. package/module/musician_tasks.js +11 -11
  173. package/module/musician_tasks_new.js +11 -11
  174. package/module/musician_vip_tasks.js +11 -11
  175. package/module/mv_all.js +16 -16
  176. package/module/mv_detail.js +9 -9
  177. package/module/mv_detail_info.js +14 -14
  178. package/module/mv_exclusive_rcmd.js +10 -10
  179. package/module/mv_first.js +12 -12
  180. package/module/mv_sub.js +11 -11
  181. package/module/mv_sublist.js +15 -15
  182. package/module/mv_url.js +14 -14
  183. package/module/nickname_check.js +7 -7
  184. package/module/personal_fm.js +6 -6
  185. package/module/personal_fm_mode.js +14 -14
  186. package/module/personalized.js +16 -16
  187. package/module/personalized_djprogram.js +10 -10
  188. package/module/personalized_mv.js +6 -6
  189. package/module/personalized_newsong.js +15 -15
  190. package/module/personalized_privatecontent.js +10 -10
  191. package/module/personalized_privatecontent_list.js +15 -15
  192. package/module/pl_count.js +6 -6
  193. package/module/playlist_category_list.js +11 -11
  194. package/module/playlist_catlist.js +6 -6
  195. package/module/playlist_cover_update.js +32 -32
  196. package/module/playlist_create.js +11 -11
  197. package/module/playlist_delete.js +9 -9
  198. package/module/playlist_desc_update.js +10 -10
  199. package/module/playlist_detail.js +11 -11
  200. package/module/playlist_detail_dynamic.js +11 -11
  201. package/module/playlist_detail_rcmd_get.js +11 -11
  202. package/module/playlist_highquality_tags.js +10 -10
  203. package/module/playlist_hot.js +6 -6
  204. package/module/playlist_import_name_task_create.js +62 -62
  205. package/module/playlist_import_task_status.js +11 -11
  206. package/module/playlist_mylike.js +12 -12
  207. package/module/playlist_name_update.js +10 -10
  208. package/module/playlist_order_update.js +13 -13
  209. package/module/playlist_privacy.js +10 -10
  210. package/module/playlist_subscribe.js +14 -14
  211. package/module/playlist_subscribers.js +11 -11
  212. package/module/playlist_tags_update.js +10 -10
  213. package/module/playlist_track_add.js +16 -16
  214. package/module/playlist_track_all.js +31 -31
  215. package/module/playlist_track_delete.js +20 -20
  216. package/module/playlist_tracks.js +45 -45
  217. package/module/playlist_update.js +13 -13
  218. package/module/playlist_update_playcount.js +9 -9
  219. package/module/playlist_video_recent.js +9 -9
  220. package/module/playmode_intelligence_list.js +13 -13
  221. package/module/playmode_song_vector.js +8 -8
  222. package/module/program_recommend.js +15 -15
  223. package/module/radio_sport_get.js +9 -0
  224. package/module/rebind.js +16 -16
  225. package/module/recent_listen_list.js +7 -7
  226. package/module/recommend_resource.js +10 -10
  227. package/module/recommend_songs.js +13 -11
  228. package/module/recommend_songs_dislike.js +14 -14
  229. package/module/record_recent_album.js +11 -11
  230. package/module/record_recent_dj.js +11 -11
  231. package/module/record_recent_playlist.js +11 -11
  232. package/module/record_recent_song.js +11 -11
  233. package/module/record_recent_video.js +11 -11
  234. package/module/record_recent_voice.js +11 -11
  235. package/module/register_anonimous.js +53 -52
  236. package/module/register_cellphone.js +15 -15
  237. package/module/related_allvideo.js +14 -14
  238. package/module/related_playlist.js +32 -32
  239. package/module/resource_like.js +14 -14
  240. package/module/sati_resource_list.js +11 -0
  241. package/module/sati_resource_list_more.js +13 -0
  242. package/module/sati_resource_sub.js +10 -0
  243. package/module/sati_resource_sub_list.js +7 -0
  244. package/module/sati_tag_list.js +7 -0
  245. package/module/sati_timescene_resources_get.js +13 -0
  246. package/module/scrobble.js +26 -26
  247. package/module/search.js +21 -21
  248. package/module/search_default.js +6 -6
  249. package/module/search_hot.js +9 -9
  250. package/module/search_hot_detail.js +6 -6
  251. package/module/search_match.js +18 -18
  252. package/module/search_multimatch.js +14 -14
  253. package/module/search_suggest.js +14 -14
  254. package/module/search_suggest_pc.js +13 -13
  255. package/module/send_album.js +12 -12
  256. package/module/send_playlist.js +12 -12
  257. package/module/send_song.js +12 -12
  258. package/module/send_text.js +11 -11
  259. package/module/setting.js +7 -7
  260. package/module/share_resource.js +11 -11
  261. package/module/sheet_list.js +9 -9
  262. package/module/sheet_preview.js +8 -8
  263. package/module/sign_happy_info.js +5 -5
  264. package/module/signin_progress.js +13 -13
  265. package/module/simi_artist.js +12 -12
  266. package/module/simi_mv.js +9 -9
  267. package/module/simi_playlist.js +15 -15
  268. package/module/simi_song.js +15 -15
  269. package/module/simi_user.js +11 -11
  270. package/module/song_chorus.js +11 -11
  271. package/module/song_copyright_rcmd.js +9 -0
  272. package/module/song_creators.js +9 -0
  273. package/module/song_detail.js +11 -11
  274. package/module/song_downlist.js +11 -11
  275. package/module/song_download_url.js +10 -10
  276. package/module/song_download_url_v1.js +13 -13
  277. package/module/song_dynamic_cover.js +9 -9
  278. package/module/song_like.js +12 -12
  279. package/module/song_like_check.js +9 -9
  280. package/module/song_lyrics_mark.js +9 -9
  281. package/module/song_lyrics_mark_add.js +12 -12
  282. package/module/song_lyrics_mark_del.js +9 -9
  283. package/module/song_lyrics_mark_user_page.js +14 -14
  284. package/module/song_monthdownlist.js +11 -11
  285. package/module/song_music_detail.js +9 -9
  286. package/module/song_order_update.js +12 -12
  287. package/module/song_purchased.js +14 -14
  288. package/module/song_red_count.js +9 -9
  289. package/module/song_singledownlist.js +11 -11
  290. package/module/song_url.js +26 -26
  291. package/module/song_url_match.js +38 -38
  292. package/module/song_url_ncmget.js +5 -5
  293. package/module/song_url_v1.js +57 -57
  294. package/module/song_url_v1_302.js +53 -53
  295. package/module/song_wiki_summary.js +8 -8
  296. package/module/starpick_comments_summary.js +12 -12
  297. package/module/style_album.js +16 -16
  298. package/module/style_artist.js +16 -16
  299. package/module/style_detail.js +9 -9
  300. package/module/style_list.js +7 -7
  301. package/module/style_playlist.js +16 -16
  302. package/module/style_preference.js +11 -11
  303. package/module/style_song.js +12 -12
  304. package/module/summary_annual.js +12 -12
  305. package/module/threshold_detail_get.js +10 -10
  306. package/module/top_album.js +22 -22
  307. package/module/top_artists.js +11 -11
  308. package/module/top_list.js +20 -20
  309. package/module/top_mv.js +12 -12
  310. package/module/top_playlist.js +22 -22
  311. package/module/top_playlist_highquality.js +16 -16
  312. package/module/top_song.js +16 -16
  313. package/module/topic_detail.js +7 -7
  314. package/module/topic_detail_event_hot.js +7 -7
  315. package/module/topic_sublist.js +11 -11
  316. package/module/toplist.js +6 -6
  317. package/module/toplist_artist.js +12 -12
  318. package/module/toplist_detail.js +6 -6
  319. package/module/toplist_detail_v2.js +6 -6
  320. package/module/ugc_album_get.js +8 -8
  321. package/module/ugc_artist_get.js +8 -8
  322. package/module/ugc_artist_search.js +10 -10
  323. package/module/ugc_detail.js +17 -17
  324. package/module/ugc_mv_get.js +8 -8
  325. package/module/ugc_song_get.js +8 -8
  326. package/module/ugc_user_devote.js +6 -6
  327. package/module/user_account.js +5 -5
  328. package/module/user_audio.js +9 -9
  329. package/module/user_binding.js +9 -9
  330. package/module/user_bindingcellphone.js +15 -15
  331. package/module/user_cloud.js +10 -10
  332. package/module/user_cloud_del.js +9 -9
  333. package/module/user_cloud_detail.js +10 -10
  334. package/module/user_comment_history.js +15 -15
  335. package/module/user_detail.js +15 -15
  336. package/module/user_detail_new.js +20 -20
  337. package/module/user_dj.js +14 -14
  338. package/module/user_event.js +12 -12
  339. package/module/user_follow_mixed.js +23 -23
  340. package/module/user_followeds.js +17 -17
  341. package/module/user_follows.js +15 -15
  342. package/module/user_level.js +7 -7
  343. package/module/user_medal.js +11 -11
  344. package/module/user_mutualfollow_get.js +9 -9
  345. package/module/user_playlist.js +12 -12
  346. package/module/user_playlist_collect.js +14 -14
  347. package/module/user_playlist_create.js +14 -14
  348. package/module/user_record.js +10 -10
  349. package/module/user_replacephone.js +14 -14
  350. package/module/user_social_status.js +11 -11
  351. package/module/user_social_status_edit.js +16 -16
  352. package/module/user_social_status_rcmd.js +5 -5
  353. package/module/user_social_status_support.js +5 -5
  354. package/module/user_subcount.js +6 -6
  355. package/module/user_update.js +15 -15
  356. package/module/verify_getQr.js +39 -39
  357. package/module/verify_qrcodestatus.js +12 -12
  358. package/module/video_category_list.js +15 -15
  359. package/module/video_detail.js +13 -13
  360. package/module/video_detail_info.js +14 -14
  361. package/module/video_group.js +16 -16
  362. package/module/video_group_list.js +11 -11
  363. package/module/video_sub.js +14 -14
  364. package/module/video_timeline_all.js +17 -17
  365. package/module/video_timeline_recommend.js +13 -13
  366. package/module/video_url.js +10 -10
  367. package/module/vip_growthpoint.js +11 -11
  368. package/module/vip_growthpoint_details.js +14 -14
  369. package/module/vip_growthpoint_get.js +13 -13
  370. package/module/vip_info.js +12 -12
  371. package/module/vip_info_v2.js +12 -12
  372. package/module/vip_sign.js +7 -11
  373. package/module/vip_sign_info.js +11 -11
  374. package/module/vip_tasks.js +11 -11
  375. package/module/vip_timemachine.js +17 -17
  376. package/module/voice_delete.js +7 -7
  377. package/module/voice_detail.js +7 -7
  378. package/module/voice_lyric.js +7 -7
  379. package/module/voice_upload.js +200 -200
  380. package/module/voicelist_detail.js +11 -11
  381. package/module/voicelist_list.js +13 -13
  382. package/module/voicelist_list_search.js +14 -14
  383. package/module/voicelist_my_created.js +13 -13
  384. package/module/voicelist_search.js +11 -11
  385. package/module/voicelist_trans.js +15 -15
  386. package/module/weblog.js +10 -10
  387. package/module/yunbei.js +6 -6
  388. package/module/yunbei_expense.js +8 -8
  389. package/module/yunbei_info.js +5 -5
  390. package/module/yunbei_rcmd_song.js +17 -17
  391. package/module/yunbei_rcmd_song_history.js +16 -16
  392. package/module/yunbei_receipt.js +8 -8
  393. package/module/yunbei_sign.js +5 -5
  394. package/module/yunbei_task_finish.js +12 -12
  395. package/module/yunbei_tasks.js +9 -9
  396. package/module/yunbei_tasks_todo.js +9 -9
  397. package/module/yunbei_today.js +5 -5
  398. package/package.json +8 -8
  399. package/plugins/songUpload.js +109 -109
  400. package/plugins/upload.js +35 -35
  401. package/public/api.html +222 -193
  402. package/public/audio_match_demo/afp.js +1626 -1626
  403. package/public/audio_match_demo/afp.wasm.js +5 -5
  404. package/public/audio_match_demo/index.html +367 -367
  405. package/public/audio_match_demo/rec.js +49 -49
  406. package/public/avatar_update.html +326 -326
  407. package/public/cloud.html +578 -578
  408. package/public/docs/_coverpage.md +13 -13
  409. package/public/docs/home.md +5318 -5218
  410. package/public/docs/index.html +129 -47
  411. package/public/docs/logo.svg +6 -6
  412. package/public/docs/netease.png +0 -0
  413. package/public/docs/sw.js +90 -90
  414. package/public/eapi_decrypt.html +264 -226
  415. package/public/home.html +40 -40
  416. package/public/index.html +124 -124
  417. package/public/listen_together_host.html +552 -552
  418. package/public/login.html +219 -219
  419. package/public/playlist_cover_update.html +323 -323
  420. package/public/playlist_import.html +416 -416
  421. package/public/qrlogin-nocookie.html +199 -199
  422. package/public/qrlogin.html +199 -199
  423. package/public/static/2169.png +0 -0
  424. package/public/static/neteaselogo.png +0 -0
  425. package/public/unblock_test.html +153 -153
  426. package/public/voice_upload.html +326 -326
  427. package/server.js +454 -435
  428. package/util/apicache.js +836 -836
  429. package/util/client-sign.js +169 -169
  430. package/util/config.json +20 -20
  431. package/util/crypto.js +153 -135
  432. package/util/fileHelper.js +88 -88
  433. package/util/index.js +233 -233
  434. package/util/logger.js +42 -42
  435. package/util/memory-cache.js +71 -71
  436. package/util/option.js +14 -14
  437. package/util/request.js +367 -368
  438. package/module/comment_add.js +0 -15
  439. package/module/comment_reply.js +0 -13
@@ -1,47 +1,129 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="KEYWords" contect="网易云音乐,网易云音乐 api,网易云音乐 nodejs,网易云音乐 node.js">
6
- <meta name="description" content="网易云音乐 NodeJS API Enhanced">
7
- <title>网易云音乐 NodeJS API Enhanced</title>
8
- <link rel="icon" href="netease.png">
9
- <meta name="description" content="Description">
10
- <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
11
- <meta name="referrer" content="never">
12
- <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
13
- <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
14
- <script>
15
- (adsbygoogle = window.adsbygoogle || []).push({
16
- google_ad_client: "ca-pub-5159844745975514",
17
- enable_page_level_ads: true
18
- });
19
- </script>
20
- </head>
21
- <body>
22
- <div id="app"></div>
23
- </body>
24
- <script>
25
- window.$docsify = {
26
- name: '网易云音乐 API Enhanced',
27
- repo: 'https://github.com/neteasecloudmusicapienhanced/api-enhanced',
28
- coverpage: true,
29
- homepage: 'https://cdn.jsdelivr.net/gh/NeteaseCloudMusicApiEnhanced/api-enhanced@main/public/docs/home.md',
30
- }
31
- </script>
32
- <script src="https://unpkg.com/docsify@4.11.3/lib/docsify.min.js"></script>
33
- <script>
34
- if (typeof navigator.serviceWorker !== 'undefined') {
35
- navigator.serviceWorker.register('sw.js')
36
- }
37
- </script>
38
- <!-- Global site tag (gtag.js) - Google Analytics -->
39
- <script async src="https://www.googletagmanager.com/gtag/js?id=G-BPRGR23JEG"></script>
40
- <script>
41
- window.dataLayer = window.dataLayer || [];
42
- function gtag() { dataLayer.push(arguments); }
43
- gtag('js', new Date());
44
-
45
- gtag('config', 'G-BPRGR23JEG');
46
- </script>
47
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="KEYWords" contect="网易云音乐,网易云音乐 api,网易云音乐 nodejs,网易云音乐 node.js">
6
+ <meta name="description" content="网易云音乐 NodeJS API Enhanced">
7
+ <title>网易云音乐 NodeJS API Enhanced</title>
8
+ <link rel="icon" href="netease.png">
9
+ <meta name="description" content="Description">
10
+ <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
11
+ <meta name="referrer" content="never">
12
+ <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css" id="theme-css">
13
+ <style>
14
+ .theme-toggle {
15
+ position: fixed;
16
+ bottom: 24px;
17
+ right: 24px;
18
+ z-index: 999;
19
+ width: 44px;
20
+ height: 44px;
21
+ border-radius: 50%;
22
+ border: 1px solid rgba(255,255,255,0.1);
23
+ background: rgba(30,30,46,0.75);
24
+ backdrop-filter: blur(12px);
25
+ -webkit-backdrop-filter: blur(12px);
26
+ color: #fff;
27
+ font-size: 20px;
28
+ cursor: pointer;
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ box-shadow: 0 2px 12px rgba(0,0,0,0.15);
33
+ transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
34
+ outline: none;
35
+ padding: 0;
36
+ line-height: 1;
37
+ user-select: none;
38
+ }
39
+ .theme-toggle:hover {
40
+ transform: scale(1.12) rotate(12deg);
41
+ box-shadow: 0 4px 20px rgba(0,0,0,0.25);
42
+ }
43
+ .theme-toggle:active {
44
+ transform: scale(0.92);
45
+ }
46
+ .theme-toggle.light {
47
+ background: rgba(255,255,255,0.85);
48
+ color: #333;
49
+ border-color: rgba(0,0,0,0.08);
50
+ }
51
+ html, body, .sidebar, .content, .markdown-section,
52
+ .sidebar-nav, .search, .docsify-pagination-container {
53
+ transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
54
+ }
55
+ </style>
56
+ <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
57
+ <script>
58
+ (adsbygoogle = window.adsbygoogle || []).push({
59
+ google_ad_client: "ca-pub-5159844745975514",
60
+ enable_page_level_ads: true
61
+ });
62
+ </script>
63
+ </head>
64
+ <body>
65
+ <div id="app"></div>
66
+ <button class="theme-toggle" id="themeToggle" aria-label="Toggle theme">🌙</button>
67
+ </body>
68
+ <script>
69
+ (function() {
70
+ var STORAGE_KEY = 'docsify-theme';
71
+ var link = document.getElementById('theme-css');
72
+ var btn = document.getElementById('themeToggle');
73
+ var LIGHT_URL = '//unpkg.com/docsify/lib/themes/vue.css';
74
+ var DARK_URL = '//unpkg.com/docsify/lib/themes/dark.css';
75
+
76
+ function setTheme(theme) {
77
+ link.href = theme === 'dark' ? DARK_URL : LIGHT_URL;
78
+ btn.textContent = theme === 'dark' ? '☀️' : '🌙';
79
+ btn.className = 'theme-toggle' + (theme === 'dark' ? '' : ' light');
80
+ localStorage.setItem(STORAGE_KEY, theme);
81
+ }
82
+
83
+ function toggleTheme() {
84
+ var isDark = link.href.includes('dark');
85
+ setTheme(isDark ? 'light' : 'dark');
86
+ }
87
+
88
+ var saved = localStorage.getItem(STORAGE_KEY);
89
+ if (saved) {
90
+ setTheme(saved);
91
+ } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
92
+ setTheme('dark');
93
+ }
94
+
95
+ btn.addEventListener('click', toggleTheme);
96
+
97
+ try {
98
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) {
99
+ if (!localStorage.getItem(STORAGE_KEY)) {
100
+ setTheme(e.matches ? 'dark' : 'light');
101
+ }
102
+ });
103
+ } catch(e) {}
104
+ })();
105
+ </script>
106
+ <script>
107
+ window.$docsify = {
108
+ name: '网易云音乐 API Enhanced',
109
+ repo: 'https://github.com/neteasecloudmusicapienhanced/api-enhanced',
110
+ coverpage: true,
111
+ homepage: 'https://cdn.jsdelivr.net/gh/NeteaseCloudMusicApiEnhanced/api-enhanced@main/public/docs/home.md',
112
+ }
113
+ </script>
114
+ <script src="https://unpkg.com/docsify@4.11.3/lib/docsify.min.js"></script>
115
+ <script>
116
+ if (typeof navigator.serviceWorker !== 'undefined') {
117
+ navigator.serviceWorker.register('sw.js')
118
+ }
119
+ </script>
120
+ <!-- Global site tag (gtag.js) - Google Analytics -->
121
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-BPRGR23JEG"></script>
122
+ <script>
123
+ window.dataLayer = window.dataLayer || [];
124
+ function gtag() { dataLayer.push(arguments); }
125
+ gtag('js', new Date());
126
+
127
+ gtag('config', 'G-BPRGR23JEG');
128
+ </script>
129
+ </html>
@@ -1,6 +1,6 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
- <g>
3
- <path fill="none" d="M0 0h24v24H0z"/>
4
- <path d="M10.421 11.375c-.294 1.028.012 2.064.784 2.653 1.061.81 2.565.3 2.874-.995.08-.337.103-.722.027-1.056-.23-1.001-.52-1.988-.792-2.996-1.33.154-2.543 1.172-2.893 2.394zm5.548-.287c.273 1.012.285 2.017-.127 3-1.128 2.69-4.721 3.14-6.573.826-1.302-1.627-1.28-3.961.06-5.734.78-1.032 1.804-1.707 3.048-2.054l.379-.104c-.084-.415-.188-.816-.243-1.224-.176-1.317.512-2.503 1.744-3.04 1.226-.535 2.708-.216 3.53.76.406.479.395 1.08-.025 1.464-.412.377-.996.346-1.435-.09-.247-.246-.51-.44-.877-.436-.525.006-.987.418-.945.937.037.468.173.93.3 1.386.022.078.216.135.338.153 1.334.197 2.504.731 3.472 1.676 2.558 2.493 2.861 6.531.672 9.44-1.529 2.032-3.61 3.168-6.127 3.409-4.621.44-8.664-2.53-9.7-7.058C2.515 10.255 4.84 5.831 8.795 4.25c.586-.234 1.143-.031 1.371.498.232.537-.019 1.086-.61 1.35-2.368 1.06-3.817 2.855-4.215 5.424-.533 3.433 1.656 6.776 5 7.72 2.723.77 5.658-.166 7.308-2.33 1.586-2.08 1.4-5.099-.427-6.873a3.979 3.979 0 0 0-1.823-1.013c.198.716.389 1.388.57 2.062z"/>
5
- </g>
6
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <g>
3
+ <path fill="none" d="M0 0h24v24H0z"/>
4
+ <path d="M10.421 11.375c-.294 1.028.012 2.064.784 2.653 1.061.81 2.565.3 2.874-.995.08-.337.103-.722.027-1.056-.23-1.001-.52-1.988-.792-2.996-1.33.154-2.543 1.172-2.893 2.394zm5.548-.287c.273 1.012.285 2.017-.127 3-1.128 2.69-4.721 3.14-6.573.826-1.302-1.627-1.28-3.961.06-5.734.78-1.032 1.804-1.707 3.048-2.054l.379-.104c-.084-.415-.188-.816-.243-1.224-.176-1.317.512-2.503 1.744-3.04 1.226-.535 2.708-.216 3.53.76.406.479.395 1.08-.025 1.464-.412.377-.996.346-1.435-.09-.247-.246-.51-.44-.877-.436-.525.006-.987.418-.945.937.037.468.173.93.3 1.386.022.078.216.135.338.153 1.334.197 2.504.731 3.472 1.676 2.558 2.493 2.861 6.531.672 9.44-1.529 2.032-3.61 3.168-6.127 3.409-4.621.44-8.664-2.53-9.7-7.058C2.515 10.255 4.84 5.831 8.795 4.25c.586-.234 1.143-.031 1.371.498.232.537-.019 1.086-.61 1.35-2.368 1.06-3.817 2.855-4.215 5.424-.533 3.433 1.656 6.776 5 7.72 2.723.77 5.658-.166 7.308-2.33 1.586-2.08 1.4-5.099-.427-6.873a3.979 3.979 0 0 0-1.823-1.013c.198.716.389 1.388.57 2.062z"/>
5
+ </g>
6
+ </svg>
Binary file
package/public/docs/sw.js CHANGED
@@ -1,90 +1,90 @@
1
- /* ===========================================================
2
- * docsify sw.js
3
- * ===========================================================
4
- * Copyright 2016 @huxpro
5
- * Licensed under Apache 2.0
6
- * Register service worker.
7
- * ========================================================== */
8
-
9
- const RUNTIME = 'docsify'
10
- const HOSTNAME_WHITELIST = [
11
- self.location.hostname,
12
- 'fonts.gstatic.com',
13
- 'fonts.googleapis.com',
14
- 'unpkg.com',
15
- ]
16
-
17
- // The Util Function to hack URLs of intercepted requests
18
- const getFixedUrl = (req) => {
19
- var now = Date.now()
20
- var url = new URL(req.url)
21
-
22
- // 1. fixed http URL
23
- // Just keep syncing with location.protocol
24
- // fetch(httpURL) belongs to active mixed content.
25
- // And fetch(httpRequest) is not supported yet.
26
- url.protocol = self.location.protocol
27
-
28
- // 2. add query for caching-busting.
29
- // Github Pages served with Cache-Control: max-age=600
30
- // max-age on mutable content is error-prone, with SW life of bugs can even extend.
31
- // Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
32
- // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
33
- if (url.hostname === self.location.hostname) {
34
- url.search += (url.search ? '&' : '?') + 'cache-bust=' + now
35
- }
36
- return url.href
37
- }
38
-
39
- /**
40
- * @Lifecycle Activate
41
- * New one activated when old isnt being used.
42
- *
43
- * waitUntil(): activating ====> activated
44
- */
45
- self.addEventListener('activate', (event) => {
46
- event.waitUntil(self.clients.claim())
47
- })
48
-
49
- /**
50
- * @Functional Fetch
51
- * All network requests are being intercepted here.
52
- *
53
- * void respondWith(Promise<Response> r)
54
- */
55
- self.addEventListener('fetch', (event) => {
56
- // Skip some of cross-origin requests, like those for Google Analytics.
57
- if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
58
- // Stale-while-revalidate
59
- // similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
60
- // Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
61
- const cached = caches.match(event.request)
62
- const fixedUrl = getFixedUrl(event.request)
63
- const fetched = fetch(fixedUrl, { cache: 'no-store' })
64
- const fetchedCopy = fetched.then((resp) => resp.clone())
65
-
66
- // Call respondWith() with whatever we get first.
67
- // If the fetch fails (e.g disconnected), wait for the cache.
68
- // If there’s nothing in cache, wait for the fetch.
69
- // If neither yields a response, return offline pages.
70
- event.respondWith(
71
- Promise.race([fetched.catch((_) => cached), cached])
72
- .then((resp) => resp || fetched)
73
- .catch((_) => {
74
- /* eat any errors */
75
- }),
76
- )
77
-
78
- // Update the cache with the version we fetched (only for ok status)
79
- event.waitUntil(
80
- Promise.all([fetchedCopy, caches.open(RUNTIME)])
81
- .then(
82
- ([response, cache]) =>
83
- response.ok && cache.put(event.request, response),
84
- )
85
- .catch((_) => {
86
- /* eat any errors */
87
- }),
88
- )
89
- }
90
- })
1
+ /* ===========================================================
2
+ * docsify sw.js
3
+ * ===========================================================
4
+ * Copyright 2016 @huxpro
5
+ * Licensed under Apache 2.0
6
+ * Register service worker.
7
+ * ========================================================== */
8
+
9
+ const RUNTIME = 'docsify'
10
+ const HOSTNAME_WHITELIST = [
11
+ self.location.hostname,
12
+ 'fonts.gstatic.com',
13
+ 'fonts.googleapis.com',
14
+ 'unpkg.com',
15
+ ]
16
+
17
+ // The Util Function to hack URLs of intercepted requests
18
+ const getFixedUrl = (req) => {
19
+ var now = Date.now()
20
+ var url = new URL(req.url)
21
+
22
+ // 1. fixed http URL
23
+ // Just keep syncing with location.protocol
24
+ // fetch(httpURL) belongs to active mixed content.
25
+ // And fetch(httpRequest) is not supported yet.
26
+ url.protocol = self.location.protocol
27
+
28
+ // 2. add query for caching-busting.
29
+ // Github Pages served with Cache-Control: max-age=600
30
+ // max-age on mutable content is error-prone, with SW life of bugs can even extend.
31
+ // Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
32
+ // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
33
+ if (url.hostname === self.location.hostname) {
34
+ url.search += (url.search ? '&' : '?') + 'cache-bust=' + now
35
+ }
36
+ return url.href
37
+ }
38
+
39
+ /**
40
+ * @Lifecycle Activate
41
+ * New one activated when old isnt being used.
42
+ *
43
+ * waitUntil(): activating ====> activated
44
+ */
45
+ self.addEventListener('activate', (event) => {
46
+ event.waitUntil(self.clients.claim())
47
+ })
48
+
49
+ /**
50
+ * @Functional Fetch
51
+ * All network requests are being intercepted here.
52
+ *
53
+ * void respondWith(Promise<Response> r)
54
+ */
55
+ self.addEventListener('fetch', (event) => {
56
+ // Skip some of cross-origin requests, like those for Google Analytics.
57
+ if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
58
+ // Stale-while-revalidate
59
+ // similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
60
+ // Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
61
+ const cached = caches.match(event.request)
62
+ const fixedUrl = getFixedUrl(event.request)
63
+ const fetched = fetch(fixedUrl, { cache: 'no-store' })
64
+ const fetchedCopy = fetched.then((resp) => resp.clone())
65
+
66
+ // Call respondWith() with whatever we get first.
67
+ // If the fetch fails (e.g disconnected), wait for the cache.
68
+ // If there’s nothing in cache, wait for the fetch.
69
+ // If neither yields a response, return offline pages.
70
+ event.respondWith(
71
+ Promise.race([fetched.catch((_) => cached), cached])
72
+ .then((resp) => resp || fetched)
73
+ .catch((_) => {
74
+ /* eat any errors */
75
+ }),
76
+ )
77
+
78
+ // Update the cache with the version we fetched (only for ok status)
79
+ event.waitUntil(
80
+ Promise.all([fetchedCopy, caches.open(RUNTIME)])
81
+ .then(
82
+ ([response, cache]) =>
83
+ response.ok && cache.put(event.request, response),
84
+ )
85
+ .catch((_) => {
86
+ /* eat any errors */
87
+ }),
88
+ )
89
+ }
90
+ })