mirror of
https://github.com/AliAkhtari78/SpotifyScraper.git
synced 2026-04-25 19:45:49 +03:00
3
Quick Start
Ali Akhtari edited this page 2025-06-07 05:24:07 -04:00
Table of Contents
Quick Start Guide
Get up and running with SpotifyScraper in minutes. This guide covers the essential steps to start extracting Spotify data.
Installation
# Basic installation
pip install spotifyscraper
# With Selenium support (for JavaScript-heavy pages)
pip install spotifyscraper[selenium]
# All features
pip install spotifyscraper[all]
Your First Script
Extract Track Information
from spotify_scraper import SpotifyClient
# Initialize client
client = SpotifyClient()
# Get track info
track_url = "https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh"
track = client.get_track_info(track_url)
# Display results
print(f"Track: {track.get('name', 'Unknown')}")
print(f"Artist: {(track.get('artists', [{}])[0].get('name', 'Unknown') if track.get('artists') else 'Unknown')}")
print(f"Album: {track.get('album', {}).get('name', 'Unknown')}")
print(f"Duration: {track.get('duration_ms', 0) // 1000} seconds")
# Clean up
client.close()
Download Media
# Download cover art
cover_path = client.download_cover(track_url, output_dir="covers/")
print(f"Cover saved to: {cover_path}")
# Download preview clip
preview_path = client.download_preview_mp3(track_url, output_dir="previews/")
print(f"Preview saved to: {preview_path}")
Using the CLI
SpotifyScraper includes a powerful command-line interface:
# Get track info
spotify-scraper track https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh
# Download album with covers
spotify-scraper download album https://open.spotify.com/album/0JGOiO34nwfUdDrD612dOp
# Export playlist to JSON
spotify-scraper playlist https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M --output playlist.json
Common Use Cases
1. Process Multiple Tracks
from spotify_scraper import SpotifyBulkOperations
# Initialize bulk operations
bulk = SpotifyBulkOperations()
# Process multiple URLs
urls = [
"https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh",
"https://open.spotify.com/track/5W3cjX2J3tjhG8zb6u0qHn",
"https://open.spotify.com/track/1prhCmPbZNOvgpwdKArY4a"
]
results = bulk.process_urls(urls, operation="info")
for url, data in results['results'].items():
if 'info' in data:
print(f"{data['info']['name']} - {data['info']['artists'][0]['name']}")
2. Export Playlist
# Get playlist data
playlist_url = "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
playlist = client.get_playlist_info(playlist_url)
# Export to JSON
import json
with open('playlist.json', 'w') as f:
json.dump(playlist, f, indent=2)
# Export track list to CSV
import csv
with open('tracks.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Title', 'Artist', 'Album', 'Duration'])
for track in playlist['tracks']:
writer.writerow([
track.get('name', 'Unknown'),
', '.join(a['name'] for a in track['artists']),
track.get('album', {}).get('name', 'Unknown'),
track.get('duration_ms', 0) // 1000
])
3. Get Artist Discography
# Get artist info
artist_url = "https://open.spotify.com/artist/3fMbdgg4jU18AjLCKBhRSm"
artist = client.get_artist_info(artist_url)
print(f"Artist: {artist.get('name', 'Unknown')}")
# Note: Top tracks are not available via web scraping
# Use Spotify Web API for detailed artist information
Configuration Options
Using Different Browsers
# Use Selenium for JavaScript-heavy content
from spotify_scraper.core.config import Config
config = Config(browser_type="selenium", headless=True)
client = SpotifyClient(config=config)
Authentication for Premium Features
# Use cookies for authenticated features (e.g., lyrics)
client = SpotifyClient(cookie_file="cookies.txt")
# Get track with lyrics
track = client.get_track_info_with_lyrics(track_url)
if track.get('lyrics'):
print(track['lyrics'])
Error Handling
from spotify_scraper.core.exceptions import SpotifyScraperError
try:
track = client.get_track_info(track_url)
except SpotifyScraperError as e:
print(f"Error: {e}")
# Handle specific error types
if isinstance(e, URLError):
print("Invalid Spotify URL")
elif isinstance(e, NetworkError):
print("Network connection issue")
Next Steps
- Explore API Reference for detailed documentation
- Check out Examples for more use cases
- Read the FAQ for common questions
- View advanced features in the main documentation