环境: Arch Linux + KDE

尝试播放无损歌曲时,出现报错:
[00007f9b30003c50] prefetch stream error: unimplemented query (264) in control
Google 之,发现这是 vlc 在报错,于是抓包得到形如:
http://m8.music.126.net/2019***/***/ymusic/fcf3/a2fb/5f87/***.flac
的 flac 直链,在 mpv –> Tools –> Messages 里面将 Verbosity 调为2,然后打开链接,在 Messages 窗口出现:

1
2
3
main debug: creating demux: access='http' demux='mp3' location='m8.music.126.net/2019***/***/ymusic/fcf3/a2fb/5f87/***.flac' file='(null)'
main debug: looking for demux module matching "mp3": 55 candidates
prefetch error: unimplemented query (264) in control

看上去 vlc 把它当作 mp3 解码了,再次抓包,发现网易对于 flac 报文的 MIME 是audio/mpeg🌚,于是我们使用神器 Privoxy 改写报文头:

1
2
3
# /etc/privoxy/netease-cloud-music.action
{ +force-text-mode +content-type-overwrite{audio/flac} }
.music.126.net/.*\.flac$

1
2
3
# /etc/privoxy/config
...
actionsfile netease-cloud-music.action

重启Privoxy,又可以愉快的听音乐啦!