#spotify #private #api #folders #session #user #add-remove-delete

spotify-private-api

Spotify私有API,支持添加/删除/移动文件夹

2个版本

0.1.1 2022年10月14日
0.1.0 2022年10月14日

#35 in #folders

MITGPL-3.0-only

25KB
569

Spotify私有API for Rust

支持添加、删除和移动Spotify文件夹/播放列表

使用方法

crates.rs阅读文档

灵感来源


lib.rs:

Spotify私有API库

支持添加、删除和移动Spotify文件夹/播放列表

示例

use spotify_private_api::Session;

#[tokio::main]
async fn main() {
    let dc = "SP_DC".to_string();
    let key = "SP_KEY".to_string();
    let user_id = "USER_ID".to_string();

    let s = Session::new(&dc, &key, &user_id)
        .await
        .expect("Failed to create session");

    let root_list = s.get_root_list()
        .await
        .expect("failed to get root list");

    let changes = root_list
        .new_request()
        .add("New Folder", &root_list.generate_folder_uri(), 0, 2)
        .build();

    s.send_changes(&changes)
        .await
        .expect("failed to send changes");
}

如何生成dc和key(有效期为1年)

  • 在浏览器中打开一个新的无痕窗口,并在 登录到Spotify
  • 在浏览器中打开开发者工具(可能需要在某些浏览器中启用开发者菜单)
  • 在网络标签中,启用“保留日志”
  • 登录到Spotify。
  • 在网络标签中,搜索/过滤 password
  • 在请求的cookies下,保存 sp_dcsp_key 的值。
  • 关闭窗口而不注销(否则cookies会失效)。

如何获取您的用户id

  • Spotify网页播放器右上角点击您的账户名称
  • 选择 Profile
  • 链接的最后部分是您的用户id,例如: https://open.spotify.com/user/{user_id}

依赖项

~6–21MB
~285K SLoC