支持网易源“我喜欢”歌单以注入token的方式打开

pull/623/head
lyswhut 2021-08-18 14:03:00 +08:00
parent c377469dad
commit ecff04618b
3 changed files with 42 additions and 1 deletions

28
FAQ.md
View File

@ -64,6 +64,34 @@
注:网易源的“我喜欢”歌单无法在未登录的情况下打开,所以你需要手动创建一个歌单后将“我喜欢”里的歌曲移动到该歌单打开 注:网易源的“我喜欢”歌单无法在未登录的情况下打开,所以你需要手动创建一个歌单后将“我喜欢”里的歌曲移动到该歌单打开
### 打开网易源“我喜欢”歌单
由于网易源的“我喜欢”歌单需要登录才能打开从v1.13.0起提供了可以以注入token的方式打开网易源“我喜欢”歌单的功能现若想要打开此类歌单需要在歌单链接或id后面拼上 `###` 再加上有效的token拼接格式`[id|url]###token`例子最后面的xxxxxx替换成你的token
- `https://music.163.com/#/playlist?id=11332&userid=123456###xxxxxx`
- `11332###xxxxxx`
即:将 `歌单链接或者歌单ID`、`###`、`token` 这三者拼到一起。
#### `token`的获取方法
在浏览器打开登录网易云音乐并**登录**后,按`F12`,此时将会打开开发者窗口,然后按你使用的浏览器操作:
##### 谷歌、360、qq等浏览器
这些浏览器打开此窗口时界面可能是中文也可能是英文,英文的话按括号里的来
1. 点击窗口顶部`应用程序(application)`
2. 展开左侧 `Cookies`
3. 点击 `https://music.163.com`
4. 在右侧窗口找到 `名称(Name)``MUSIC_U` 的这行,这行的第二列(`值(Value)`)内的那串内容就是`token`,双击它进入编辑状态,然后按`ctrl + c`键就可以将它复制
##### 火狐浏览器
1. 点击窗口顶部`存储`
2. 展开左侧 `Cookie`
3. 点击 `https://music.163.com`
4. 在右侧窗口找到 `名称``MUSIC_U` 的这行,这行的最后一列(`值`)内的那串内容就是`token`,双击它进入编辑状态,然后按`ctrl + c`键就可以将它复制
## 更新已收藏的在线歌单 ## 更新已收藏的在线歌单
该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“更新”使用该功能, 该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“更新”使用该功能,

View File

@ -2,6 +2,10 @@
- 歌曲搜索框新增清理按钮,点击此按钮可以清理搜索框并返回初始搜索界面 - 歌曲搜索框新增清理按钮,点击此按钮可以清理搜索框并返回初始搜索界面
### 优化
- 支持网易源“我喜欢”歌单以注入token的方式打开。由于网易源的“我喜欢”歌单需要登录才能打开若你看不懂后半句就去阅读 常见问题-无法打开外部歌单),现若想要打开此类歌单,需要在歌单链接后面拼上 `###` 再加上有效的token拼接格式`[id|url]###token`例子最后面的xxxxxx替换成你的token`https://music.163.com/#/playlist?id=123456&userid=123456###xxxxxx`
### 修复 ### 修复
- 修复某些情况下同步功能会导致切歌混乱的问题 - 修复某些情况下同步功能会导致切歌混乱的问题

View File

@ -17,6 +17,7 @@ export default {
limit_list: 30, limit_list: 30,
limit_song: 100000, limit_song: 100000,
successCode: 200, successCode: 200,
cookie: 'MUSIC_U=',
sortList: [ sortList: [
{ {
name: '最热', name: '最热',
@ -63,6 +64,11 @@ export default {
if (this._requestObj_listDetail) this._requestObj_listDetail.cancelHttp() if (this._requestObj_listDetail) this._requestObj_listDetail.cancelHttp()
if (tryNum > 2) return Promise.reject(new Error('try max num')) if (tryNum > 2) return Promise.reject(new Error('try max num'))
if (id.includes('###')) {
const [url, token] = id.split('###')
id = url
this.cookie = `MUSIC_U=${token}`
}
if ((/[?&:/]/.test(id))) { if ((/[?&:/]/.test(id))) {
if (this.regExps.listDetailLink.test(id)) { if (this.regExps.listDetailLink.test(id)) {
id = id.replace(this.regExps.listDetailLink, '$1') id = id.replace(this.regExps.listDetailLink, '$1')
@ -76,7 +82,10 @@ export default {
this._requestObj_listDetail = httpFetch('https://music.163.com/api/linux/forward', { this._requestObj_listDetail = httpFetch('https://music.163.com/api/linux/forward', {
method: 'post', method: 'post',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36', headers: {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',
Cookie: this.cookie,
},
form: linuxapi({ form: linuxapi({
method: 'POST', method: 'POST',
url: 'https://music.163.com/api/v3/playlist/detail', url: 'https://music.163.com/api/v3/playlist/detail',