qier222 / YesPlayMusic

高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron:
https://music.qier222.com
MIT License
29.33k stars 4.31k forks source link

能不能提供一个下载功能呢。软件很好用,非常感谢! #890

Closed bluesxu closed 3 years ago

bluesxu commented 3 years ago

如题

SteamFinder commented 3 years ago

+1

TotoWang-hhh commented 3 years ago

我之前说想要加个插件功能就是因为这里一直不加下载功能,我打算自己开发个

Jason-summer commented 3 years ago

加入下载功能就造成侵权了,容易收到律师函。。

TotoWang-hhh commented 3 years ago

加入下载功能就造成侵权了,容易收到律师函。。

所以我说了希望他们加个插件功能(看我之前写的issue),这样的话我可以以第三方的身份写一个插件,最后该收律师函的应该是我,但是我从来不实名(手动滑稽)

WuJunkai2004 commented 3 years ago

我在F12里面看到media是明文发送的,没有经过加密。是否可以提供一个函数,使得可以使用油猴脚本获取音乐url,再下载。而版权问题在脚本开发者这里,而不是软件开发者。其实我觉得该函数已经存在,只是我找不到。。。

TotoWang-hhh commented 3 years ago

我在F12里面看到media是明文发送的,没有经过加密。是否可以提供一个函数,使得可以使用油猴脚本获取音乐url,再下载。而版权问题在脚本开发者这里,而不是软件开发者。其实我觉得该函数已经存在,只是我找不到。。。

其实只要弄到歌曲id就行了,访问music.163.com/outer/歌曲id.mp3可获得文件

TotoWang-hhh commented 3 years ago

我在F12里面看到media是明文发送的,没有经过加密。是否可以提供一个函数,使得可以使用油猴脚本获取音乐url,再下载。而版权问题在脚本开发者这里,而不是软件开发者。其实我觉得该函数已经存在,只是我找不到。。。

我的music area就是这个原理(我是说4.0,之前的音源都是qq音乐)。

WuJunkai2004 commented 3 years ago

这个办法好像只能下载那些可以外链的音乐,但是我希望下载会员音乐(我有黑胶会员)

从 Windows 版邮件https://go.microsoft.com/fwlink/?LinkId=550986发送

发件人: @.> 发送时间: 2021年8月28日 16:07 收件人: @.> 抄送: Wu @.>; @.> 主题: Re: [qier222/YesPlayMusic] 能不能提供一个下载功能呢。软件很好用,非常感谢! (#890)

我在F12里面看到media是明文发送的,没有经过加密。是否可以提供一个函数,使得可以使用油猴脚本获取音乐url,再下载。而版权问题在脚本开发者这里,而不是软件开发者。其实我觉得该函数已经存在,只是我找不到。。。

其实只要弄到歌曲id就行了,访问music.163.com/outer/歌曲id.mp3可获得文件

― You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/qier222/YesPlayMusic/issues/890#issuecomment-907591268, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMA56SBKY2ITH6N73BY6UN3T7CKKPANCNFSM5CJKS44Q. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

TotoWang-hhh commented 3 years ago

这个办法好像只能下载那些可以外链的音乐,但是我希望下载会员音乐(我有黑胶会员)

从 Windows 版邮件https://go.microsoft.com/fwlink/?LinkId=550986发送

发件人: @.***>

发送时间: 2021年8月28日 16:07

收件人: @.***>

抄送: Wu @.>; @.>

主题: Re: [qier222/YesPlayMusic] 能不能提供一个下载功能呢。软件很好用,非常感谢! (#890)

我在F12里面看到media是明文发送的,没有经过加密。是否可以提供一个函数,使得可以使用油猴脚本获取音乐url,再下载。而版权问题在脚本开发者这里,而不是软件开发者。其实我觉得该函数已经存在,只是我找不到。。。

其实只要弄到歌曲id就行了,访问music.163.com/outer/歌曲id.mp3可获得文件

You are receiving this because you commented.

Reply to this email directly, view it on GitHubhttps://github.com/qier222/YesPlayMusic/issues/890#issuecomment-907591268, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMA56SBKY2ITH6N73BY6UN3T7CKKPANCNFSM5CJKS44Q.

Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

用UnblockNeteaseMusic,不过这样的话还不如直接坐享其成,就像你说的,直接用YesPlayMusic的函数

milkpotatoes commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

WuJunkai2004 commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

milkpotatoes commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

dom获取audio节点就好了😂只要不是,调用a标签的download属性特定,click就好

WuJunkai2004 commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

dom获取audio节点就好了😂只要不是,调用a标签的download属性特定,click就好

要是有这么简单就好了 实际上我根本找不到它使用什么tag来播放音乐,反正不是我知道的方法。 而且网页PWA版似乎有些问题(登录后音乐灰色,搜索错误等),在你那边有出现吗?

TotoWang-hhh commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

dom获取audio节点就好了😂只要不是,调用a标签的download属性特定,click就好

要是有这么简单就好了

实际上我根本找不到它使用什么tag来播放音乐,反正不是我知道的方法。

而且网页PWA版似乎有些问题(登录后音乐灰色,搜索错误等),在你那边有出现吗?

之前用python写qq音乐下载器的时候也遇到过搜索错误的问题,可以检查下是不是你的请求没有被正常处理,而是返回了一个错误信息。

milkpotatoes commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

dom获取audio节点就好了😂只要不是,调用a标签的download属性特定,click就好

要是有这么简单就好了 实际上我根本找不到它使用什么tag来播放音乐,反正不是我知道的方法。 而且网页PWA版似乎有些问题(登录后音乐灰色,搜索错误等),在你那边有出现吗?

yesplaymusic.player._howler._src 播放资源src

milkpotatoes commented 3 years ago

其实如果用网页版的话,还是很容易用油猴实现的,我就在我写的插件里面加了一个 QQ音乐播放器美化 - Greasy Fork

美化和下载还是不太一样的,我搞了半天都没做好逆向

dom获取audio节点就好了😂只要不是,调用a标签的download属性特定,click就好

要是有这么简单就好了 实际上我根本找不到它使用什么tag来播放音乐,反正不是我知道的方法。 而且网页PWA版似乎有些问题(登录后音乐灰色,搜索错误等),在你那边有出现吗?

yesplaymusic.player._howler._src 播放资源src

judgeou commented 3 years ago

在Windows,缓存目录是 %appdata%\yesplaymusic\Cache,里面的很多 f_xxxx 有一些是 mp3 文件,可以自己写程序遍历,一个个判断mp3信息,拿到要的歌曲。

ForyoungYu commented 3 years ago

在Linux系统下缓存目录在哪里 @qier222

balthild commented 1 year ago

如果会使用 F12 DevTools 的话,可以用它来下载。在 Application 页的 IndexedDB / yesplaymusic / trackSources 里面,根据 name 字段找到你要下载的歌曲,记下其 id,然后在 Console 页调用以下代码:

async function getRow(dbname, version, storage, id) {
  // 打开数据库
  const db = await new Promise((resolve, reject) => {
    const request = indexedDB.open(dbname, version);
    request.onerror = () => reject(request.error);
    request.onsuccess = () => resolve(request.result);
  });

  // 获取事务和存储区域
  const tx = db.transaction(storage, 'readonly');
  const store = tx.objectStore(storage);

  // 获取数据
  const result = await new Promise((resolve, reject) => {
    const request = store.get(id);
    request.onerror = () => reject(request.error);
    request.onsuccess = () => resolve(request.result);
  });

  // 关闭数据库
  db.close();

  // 返回结果
  return result;
}

function download(id, path) {
  const fs = require('fs');
  getRow('yesplaymusic', 40, 'trackSources', id).then((record) => {
    fs.appendFileSync(path, Buffer.from(record.source));
  });
}

download(114514, 'C:/Users/YajuSenpai/Desktop/114514.mp3');

这个方法经测试在 YesPlayMusic v0.4.7 中可用。


版权声明:getRow 函数由 ChatGPT 编写,经其本机同意采用 WTFPL 协议发表。