A Python tool to download Guitar Pro tabs from Songsterr as JSON files.
- Download all instrument tracks from any Songsterr song
- Generate PDF tablature files (optional)
- Automatic track naming (guitar, bass, drums, etc.)
- Organized output with metadata
- Headless browser mode (no GUI needed)
- Anti-detection measures to avoid blocking
- Python 3.8 or higher
- Google Chrome browser installed
-
Clone the repository:
git clone https://github.com/yourusername/songsterr-downloader.git cd songsterr-downloader -
Install dependencies:
pip install -r requirements.txt
Or install manually:
pip install selenium webdriver-manager requests
Download a song by providing its Songsterr URL:
python songsterr_downloader.py "https://www.songsterr.com/a/wsa/metallica-enter-sandman-tab-s27"python songsterr_downloader.py "https://www.songsterr.com/a/wsa/metallica-enter-sandman-tab-s27" -o ./my_tabspython songsterr_downloader.py "https://www.songsterr.com/a/wsa/metallica-enter-sandman-tab-s27" --no-headlesspython songsterr_downloader.py "https://www.songsterr.com/a/wsa/metallica-enter-sandman-tab-s27" -vpython songsterr_downloader.py "https://www.songsterr.com/a/wsa/metallica-enter-sandman-tab-s27" --pdf| Option | Description |
|---|---|
url |
Songsterr song URL (required) |
-o, --output |
Output directory (default: ./<artist>_<song>/) |
--pdf |
Generate PDF tablature files |
--no-headless |
Show browser window |
-v, --verbose |
Enable verbose debug output |
-h, --help |
Show help message |
The downloader creates a folder with the following structure:
artist_song/
├── metadata.json # Song info, track list, download timestamp
├── 00_lead_guitar.json # Track 0 data
├── 01_rhythm_guitar.json # Track 1 data
├── 02_bass.json # Track 2 data
└── 03_drums.json # Track 3 data
Each track file contains the full tablature data in JSON format, including:
- Note positions and frets
- Timing information
- Effects (bends, slides, hammer-ons, etc.)
- Tempo and time signature changes
{
"url": "https://www.songsterr.com/a/wsa/...",
"song_info": {
"title": "Enter Sandman",
"artist": "Metallica",
"song_id": 27,
"revision_id": 12345,
"tracks": [...]
},
"downloaded_at": "2024-01-15 14:30:00",
"files": ["00_lead_guitar.json", "01_rhythm_guitar.json", ...]
}- Browser Automation: Uses Selenium WebDriver to load the Songsterr page
- Network Capture: Monitors network requests to capture CloudFront CDN URLs
- Data Extraction: Extracts song metadata from the page's state script
- Download: Fetches all track JSON files from the CDN
- Organization: Saves files with proper naming and metadata
Make sure Google Chrome is installed. The webdriver-manager package will automatically download the correct ChromeDriver.
If downloads are slow or failing, try running with --no-headless to see what's happening in the browser.
Some songs may not have all tracks available. Check the metadata.json for available track information.
If you encounter blocking, wait a few minutes before retrying. The script includes anti-detection measures, but excessive usage may trigger rate limiting.
This tool is for personal use only. Please respect Songsterr's Terms of Service and the rights of music publishers. Downloaded tabs should only be used for personal practice and learning.
This project is licensed under the MIT License - see the LICENSE file for details.
- Songsterr for providing an amazing tab resource
- Selenium for browser automation
- webdriver-manager for ChromeDriver management