项目地址: https://github.com/reorx/xiami_exporter
虾米将在 2 月 5 日正式关闭,作为虾米曾经的用户,不舍属于自己的数据就此丢失,遂开发此工具,通过虾米网页端 API,尽可能将多种格式的数据完整保存下来,并规范数据库和文件系统存储结构,方便日后查询和使用。在此分享给有同样需求的朋友,愿大家都能保留属于自己的一份比特记忆。
可能有人会问,虾米官方不是提供了导出的方法吗,为何还要自己动手实现呢?首先,官方导出的数据非常简陋,以收藏歌曲为例,官方导出每首歌只有 songName
, albumName
, singers
三个字段,无论是用于溯源还是写入 metadata 都远远不足,只能作为聊胜于无的最后手段;其次,官方不提供歌曲音频文件的下载,对于只存在于虾米的歌曲,往后将非常难以寻找;最后,官方提供的 json 不便于查询和维护,建立一套完整的数据库表结构可以大大增进这方面的便利性,为日后基于这份数据创造其他的应用(如专辑、歌曲展示页面)提供了良好的基础。
Xiami Exporter 目前已实现的功能包括:
即将(最近几日)实现的功能有:
Xiami Exporter 保存的数据有如下几类:
默认在项目路径下创建 XiamiExports
目录,以便于检索的方式将以上数据分门别类,放置在各子目录下。
数据库中会包含 song, album, playlist 三个表,目前完成了 song 的 schema,见下图:
Q: 如何完成身份验证?
A: 通过导出 Chrome 中已登录账户的 cookie,不需要向本工具输入用户名和密码。
Q: 使用者需要什么知识和环境?
A: 基本的命令行操作常识,一台安装了 Python 3 的电脑( macOS 和 Linux 为佳,Windows 理论上支持,若有问题可以反馈 issues )
Q: 只能用一个月的项目值得这么做吗?
A: 经历和记忆定义了目前的我们,对于这个愈发「赛博」的世界来说,数据如同灵魂的一部分,不可轻易舍弃,更不可被随意侵犯。
Q: 如何反馈和联系?
A: 1. 创建 issue; 2. 在 twitter @novoreorx.
完成了如下功能:
1
hcsu 2021-01-09 08:35:33 +08:00 via iPhone
谢谢,支持!收藏了一堆日文韩文的歌,导入到 am 或者 YouTube music 里都是错的
|
2
onlyonen 2021-01-09 11:30:04 +08:00 via Android
谢谢老哥的工具,很好用
|
3
seekfire 2021-01-09 13:29:39 +08:00
感谢,非常实用的工具
|
5
lxfcool 2021-01-10 15:48:51 +08:00
有没有方法能够导出之前自己的评论呢?
|
6
reorx OP @lxfcool 只要网页版有对应接口,都可以做到这个工具中,但是我看了下似乎并没有可以查询自己的评论的 API,很遗憾 😔
|
7
felinx 2021-01-12 11:47:02 +08:00
程序员真可怕,一个不爽就撸代码解决问题 : )
|
9
ihainan 2021-01-16 12:18:31 +08:00
非常感谢
|
10
Lemeng 2021-01-16 16:26:58 +08:00
很好,感谢
|
11
wq2016 2021-01-16 22:53:52 +08:00
就我报错?
|
12
hackpro 2021-01-17 23:29:04 +08:00
pip install peewee-db-evolve
|
14
reorx OP @hackpro 这个项目我看到了,不使用有两个原因:
1. 不支持 SQLite 2. database migration 需要做的事情不仅仅是改变 schema,经常还需要对已有数据进行改变。 peewee-db-evolve 的作者说: > Managing your schema by writing your own migrations is kind of like managing your source code by writing your own patch files in addition to writing your actual code. A well vetted diff tool is going to be better and faster at it than you. 对此我表示完全不赞同,我感觉他还没有被现实中复杂的需求和场景所毒打过🤪 |
15
morphyhu 2021-01-25 21:14:18 +08:00
身为虾米的用户对你说声感谢。
|