歌曲版权问题无法播放的简单解决方案
oldoldstone opened this issue · 6 comments
oldoldstone commented
-
系统:archlinux x86_64 kernel 4.19.25-1-lts
-
问题
今天想缓存一首歌,却提示版权问题一直跳到几十首歌以后,但我看缓存里却下载了很多歌曲包括我想下载的那首,再倒回去就可以播放了。
- 结论:
部分歌曲可以缓存,却无法播放。
-
原因:
我简单看了一下cache和player的源码,发现缓存使用了地址转换,在线播放却没有。简单改了一下player.py的代码就可以正常播放了 -
解决方案:
player.py 第321行开始加上作如下修改,注意对齐
else:
new_url = NetEase().songs_url([args["song_id"]])[0]["url"] #使用新地址
if not new_url: #如果没有获得新地址
new_url = args["mp3_url"] #使用老地址传给mpg123
thread = threading.Thread(
target=self.run_mpg123,
args=(on_exit, new_url, args["expires"], args["get_time"]),
)
....
如果修改错误,多半是空格的问题,改了一句话,就不Fork了,直接附上文件
- player.py,替换原来的 ,一般在python安装目录site-packages下面,如archlinux在,/lib/python3.7/site-packages/NEMbox/
player.py.tar.gz - archlinux 打包版,后缀名改为tar.xz , pacman -U安装
netease-musicbox-git-r588.8780d8f-1-any.pkg.tar.gz
crimx commented
依然不行,还是爆屏。 播一下其它列表再换回来可以了。
oldoldstone commented
我也发现了,已经更新
修改遇到真正版权限制的歌曲会出错,所以需要加个判断,我还是简单粗暴的改了一下,如果版权限制,获取的newurl为None,此时直接播放下一首
原来的版权限制是获取mpg123的状态判断的,这样这些语句就废了,不过好像现在还能用
依然不行,还是爆屏。 播一下其它列表再换回来可以了。
hehh2001 commented
OS: Arch Linux
Kernel: x86_64 Linux 4.19.28-1-lts
按照上述更改后无效,程序都跑不起来,有哪位大神给分享一份改过的player.py
oldoldstone commented
OS: Arch Linux
Kernel: x86_64 Linux 4.19.28-1-lts
按照上述更改后无效,程序都跑不起来,有哪位大神给分享一份改过的player.py
好吧,已经附上
BeautyyuYanli commented
不如交个pr吧。
hehh2001 commented
@oldoldstone 感谢,已处理好了,多谢!!!