1use std::env;
2use wolframe_spotify_canvas::{CanvasClient, Result};
3
4#[tokio::main]
5async fn main() -> Result<()> {
6 let access_token = match env::var("SPOTIFY_TOKEN") {
8 Ok(t) => t,
9 Err(_) => {
10 eprintln!("⚠️ SPOTIFY_TOKEN environment variable not set.");
11 eprintln!(" Please set it to a valid Spotify Access Token.");
12 eprintln!(" ");
13 eprintln!(" HOW TO GET A TOKEN:");
14 eprintln!(" 1. Open https://open.spotify.com in your browser.");
15 eprintln!(" 2. Log in.");
16 eprintln!(" 3. Open Developer Tools (F12) -> Network tab.");
17 eprintln!(" 4. Filter for 'pathfinder'.");
18 eprintln!(" 5. Click any request, go to 'Headers' -> 'Request Headers'.");
19 eprintln!(" 6. Copy the 'authorization' header (starts with 'Bearer ...').");
20 eprintln!(
21 " 7. Run: $env:SPOTIFY_TOKEN='...' ; cargo run --example simple (PowerShell)"
22 );
23 return Ok(());
24 }
25 };
26
27 let mut client = CanvasClient::new();
29
30 let track_uri = "spotify:track:72Xn6x8xqegX64AKeJDsZt";
32
33 println!("Fetching canvas for: {}", track_uri);
34
35 match client.get_canvas(track_uri, &access_token).await {
37 Ok(canvas) => {
38 println!("✅ Canvas Found!");
39 println!(" - MP4 URL: {}", canvas.mp4_url);
40 println!(" - Canvas URI: {:?}", canvas.uri);
41 }
42 Err(e) => {
43 eprintln!("❌ Error: {}", e);
44 }
45 }
46
47 Ok(())
48}