#spotify #download #song #account #mp3 #lib #spotifydownloader

spotify_dl_lib

这是一个Rust库,如果您有Spotify高级账户,则允许您下载Spotify歌曲。

6个版本

0.3.21 2024年6月23日
0.3.2 2024年6月23日
0.2.2 2024年6月23日
0.1.0 2024年5月25日

#221 in 音频

Download history 164/week @ 2024-05-23 12/week @ 2024-05-30 3/week @ 2024-06-06 193/week @ 2024-06-13 233/week @ 2024-06-20 20/week @ 2024-06-27

每月下载量 239次

MIT 和可能 LGPL-3.0

42KB
961 行代码

spotify-dl-lib

这是一个Rust库,如果您有高级账户,则允许您下载Spotify歌曲。

功能

  • 下载曲目、专辑和播放列表
  • 支持mp3(启用mp3功能)和flac格式
  • 可配置下载并发性和压缩(压缩仅适用于flac!)

如何使用此库

准备好您的Spotify用户名(您的用户名不是您的显示名)和密码

如果您不知道如何获取您的Spotify用户名,这里有一个快速教程

  1. spotify_screenshot_1
  2. spotify_Screenshot_2
  3. 现在您应该已经将您的Spotify个人资料URL复制到剪贴板,在我的情况下,这是我的个人资料URL: https://open.spotify.com/user/xfvf8ol1ezj9bv5la7ty0vzut?si=8a8b7c4b7c5746df
  4. 此URL中的重要部分是: xfvf8ol1ezj9bv5la7ty0vzut,稍后保存此信息

如果您的应用程序使用UI,一个WebSocket服务器在ws://127.0.0.1:4040上公开:))) 一个使用此WebSocket的示例项目很快就会出现在我的GitHub上:D

示例

use spotify_dl_lib::SpotifyDownloader;

#[tokio::main]
async fn main() {
    let username = "your username here";
    let password = "your spotify password here";

    let output_folder = PathBuf::from("./spotify-dl-data")

    //first argument is the name of the folder, where your mp3 files will be dropped (folder will be created in your home dir)
    let spotify_dl = SpotifyDownloader::new(&output_folder, &username, &password, Some("ws://127.0.0.1:4040/ws".to_string())).await.unwrap();

    //download a playlist, album or track!
    let tracks_to_dl = vec![
       "https://open.spotify.com/playlist/7lzJ7tSe2N6Cvbsjto4lrq?si=09e7c2f655a840c5".to_string()
    ];


    /*
    download the tracks
    (2nd argument = parallelism of how many files can be downloaded concurrently (default value is 5 if None))
    (3rd argument = compression rate (only for flac format), lower = faster! higher = takes longer due of more processing (default value is 4 if None)
    (4th argument = file format, yea the output of your file bruh (only flac and mp3 are supported at the moment)
    */
    spotify_dl.download_tracks(tracks_to_dl, None, None, "mp3").await.unwrap();

    println!("download finished!");

}

重要!!

使用此项目违反Spotify的使用条款,请自行承担风险。我对于由此项目对您的Spotify账户造成的任何损害/限制不承担责任。

致谢

此项目之所以能够实现,归功于这个惊人的项目 <3 向所有人致以最诚挚的感谢。如果您正在寻找仅用于下载Spotify歌曲的CLI解决方案,请继续使用提到的项目。

依赖项

~32-47MB
~758K SLoC