spotapi 0.2.4

Fetch Spotify metadata via guest auth - search playlists, tracks, artists without API keys
Documentation

SpotAPI - Rust

A professional Rust crate for fetching Spotify metadata via guest authentication. Search for playlists, tracks, and artists without API keys.

Features

  • Guest Authentication: Automatic token generation and session management
  • Search: Find playlists, tracks, and artists with SpotifySearch
  • Playlist Fetching: Get detailed playlist metadata and tracks
  • Artist Radio: Find official "Artist Radio" playlists
  • Pagination: Automatically handles large result sets
  • Retry Logic: Exponential backoff for rate limiting

Installation

[dependencies]
spotapi = "0.2.1"

Usage

Search for Music

use spotapi::SpotifySearch;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut search = SpotifySearch::new();

    // Search playlists
    let playlists = search.playlists("Daft Punk Radio", 10).await?;
    for p in playlists {
        println!("{} by {} - {}", p.name, p.owner_name, p.uri);
    }

    // Search tracks
    let tracks = search.tracks("Get Lucky", 5).await?;
    for t in tracks {
        println!("{} by {}", t.name, t.artists.join(", "));
    }

    // Search artists
    let artists = search.artists("Daft Punk", 3).await?;

    // Find artist's radio playlist
    if let Some(uri) = search.artist_radio("Daft Punk").await? {
        println!("Radio: {}", uri);
    }

    Ok(())
}

Fetch Playlist Tracks

use spotapi::PublicPlaylist;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut playlist = PublicPlaylist::new("https://open.spotify.com/playlist/37i9dQZF1DX6ujZpAN0v9r");
    let tracks = playlist.get_tracks().await?;
    println!("Fetched {} tracks", tracks.len());
    Ok(())
}

API Reference

SpotifySearch

Method Description
playlists(query, limit) Search for playlists
tracks(query, limit) Search for tracks
artists(query, limit) Search for artists
artist_radio(artist_name) Find official radio playlist

PublicPlaylist

Method Description
new(uri) Create from URL or URI
get_tracks() Fetch all tracks (paginated)
get_playlist_info(limit, offset) Get playlist metadata

Disclaimer

This library interacts with Spotify's internal API. Use responsibly and in accordance with Spotify's terms of service.