HiFiNi - 音乐磁场 | 无损音乐下载|高清 MV|FLAC|MP3 高品质音乐免费下载试听网站
https://hifiti.com/

歌词下载
https://www.8lrc.com/

Mp3tag 编辑器

  1. 下载并安装 Mp3tag‌
    从官网 https://www.mp3tag.de 下载最新版本,安装后启动软件。‌

  2. ‌ 导入音频文件
    将需要添加歌词的 MP3 文件拖入软件界面,或通过菜单栏的“文件 → 添加目录”批量导入。‌

  3. ‌ 添加歌词字段
    右键选中文件,选择“扩展标签”(Extended Tags)。
    点击“添加字段”(Add Field),输入字段名 UNSYNCEDLYRICS(此为通用歌词标签字段)。‌
    在“值”(Value)栏粘贴 LRC 格式歌词文本,或点击“从文件导入”选择已下载的 LRC 文件。‌

  4. ‌ 保存修改
    完成编辑后,点击工具栏的“保存”按钮(或按 Ctrl+S),歌词即嵌入音频文件。‌

注意事项 ‌‌
歌词格式 ‌:需确保 LRC 文件时间轴格式正确(如[00:00.00]歌词),否则可能无法同步显示。‌‌

musicdl 下载器

  1. 安装
1
2
3
4
5
6
7
8
# from pip
pip install musicdl
# from github repo method-1
pip install git+https://github.com/CharlesPikachu/musicdl.git@master
# from github repo method-2
git clone https://github.com/CharlesPikachu/musicdl.git
cd musicdl
python setup.py install
  1. 歌单下载
1
2
3
4
5
6
musicdl -p "https://music.163.com/#/playlist?id=3039971654" -m NeteaseMusicClient
musicdl -p "https://y.qq.com/n/ryqq_v2/playlist/8740590963" -m QQMusicClient
musicdl -p "https://www.kuwo.cn/playlist_detail/2358858706" -m KuwoMusicClient
musicdl -p "https://www.kugou.com/yy/special/single/3280341.html" -m KugouMusicClient
musicdl -p "https://music.91q.com/songlist/309319" -m QianqianMusicClient
musicdl -p "https://music.migu.cn/v5/#/playlist?playlistId=228114498&playlistType=ordinary" -m MiguMusicClient
  1. 图形界面
1
python D:/workspace-git/musicdl/examples/musicdlgui/musicdlgui.py
  1. 去除数字id
    例子:恍惚 - 29790409.mp3
    在文件所在文件夹中,按住 Shift 键右键点击空白处,选择“在此处打开 PowerShell 窗口”,输入:
1
Get-ChildItem -Include "*.mp3", "*.flac", "*.wav", "*.m4a", "*.ogg", "*.aac", "*.wma" -File | Rename-Item -NewName { ($_.Name -replace ' - \d+\.', '.') -replace '-\d+\.', '.' -replace ' -\d+\.', '.' }

YesPlayMusic 登录问题解决

1.登陆网易云网页版
https://music.163.com/
确保登陆成功
2.在网易云网页版界面按下你键盘的F12按钮,找到 Network/网络 界面,不同浏览器不一样,但都一定会有
获取cookie

3.在网络请求中任选一个weblog开头的请求(有些请求是其他域的,cookie不一样),在标头中往下拉找到cookie

4.复制标头中的cookie(有些长,复制完整的值)

5.找一个记事本软件,把下面这个脚本复制进去,再将你的cookie替换脚本内第四行的占位符(别把单引号替换了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
(async () => {
/* ====== 脚本作者Github LuorixDev GPL3 ====== */
/* ====== 替换为你自己的 Cookie 字符串 ====== */
const newCookieString = `请替换这里`; // ← 请替换这里!

/* === 0. 清除现有 Cookie === */
console.log("🚿 [0] 清空可写 Cookie …");
const currentCookies = document.cookie.split(";").filter(Boolean);
if (currentCookies.length === 0) {
console.log("⚪ 当前无可清除 Cookie。");
} else {
for (const kv of currentCookies) {
const name = kv.split("=")[0].trim();
document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;
console.log("🗑️ 删除:", name);
}
console.log("✅ Cookie 清除完成(HttpOnly Cookie 不可移除)。");
}

/* === 1. 写入新 Cookie === */
console.log("📥 [1] 写入新 Cookie …");
const maxAgeSeconds = 60*60*24*15;
for (const cookie of newCookieString.split(";")) {
const c = cookie.trim();
if (!c) continue;

const [key, ...rest] = c.split("=");
const value = rest.join("=");
if (!key || !value) continue;

const encoded = `${key}=${encodeURIComponent(value)}; path=/; max-age=${maxAgeSeconds}`;
document.cookie = encoded;
console.log("🍪 写入持久 Cookie:", encoded);

// 同步写入 localStorage
localStorage.setItem(`cookie-${key}`, value);
console.log(`💾 localStorage 写入: cookie-${key} = ${value}`);
}
console.log("✅ 新 Cookie 写入完成。");

/* === 2. 获取用户信息 === */
console.log("🌐 [2] 正在请求 /api/user/account …");
let payload;
try {
const res = await fetch("/api/user/account", { credentials: "include" });
payload = await res.json();
console.log("📦 返回数据:", payload);
} catch (e) {
console.error("❌ 请求失败:", e);
return;
}
if (payload.code !== 200 || !payload.profile) {
console.error("❌ 响应异常:", payload);
return;
}
const profile = payload.profile;
console.log(`✅ 获取成功,昵称: ${profile.nickname}`);

/* === 3. 更新 localStorage.data === */
console.log("📂 [3] 读取 localStorage.data …");
let oldData;
try {
oldData = JSON.parse(localStorage.getItem("data") || "{}");
console.log("📄 当前 data:", oldData);
} catch {
console.warn("⚠️ 当前 data 解析失败,将重置为空对象。");
oldData = {};
}

const newData = {
...oldData,
user: profile,
loginMode: "account"
};

try {
localStorage.setItem("data", JSON.stringify(newData));
console.log("✅ [4] 新 data 写入完成:", newData);
} catch (e) {
console.error("❌ localStorage 写入失败:", e);
return;
}

/* === 5. 跳转至首页 === */
console.log("🏠 正在跳转到首页 …");
setTimeout(() => {
location.href = "/"; // 可改为你自己的首页路径
}, 1000); // 延迟 1 秒跳转
})();

6.再次复制修改好后的完整脚本

7.打开你的yesplaymusic

8.点击键盘上的F12,同样找到控制台界面,将这个超长脚本复制进去,脚本会自动处理cookie localStorage等信息
执行脚本

9.1s后自动刷新界面,登陆成功~

登陆成功