https://github.com/sogik/tuneharvester
Music tool with Spotify/Youtube playlist extraction and more.
https://github.com/sogik/tuneharvester
music music-downloader playlist playlist-downloader spotify youtube
Last synced: 4 months ago
JSON representation
Music tool with Spotify/Youtube playlist extraction and more.
- Host: GitHub
- URL: https://github.com/sogik/tuneharvester
- Owner: sogik
- License: bsd-3-clause
- Created: 2025-06-15T14:21:26.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-17T00:21:22.000Z (4 months ago)
- Last Synced: 2025-06-26T03:03:24.574Z (4 months ago)
- Topics: music, music-downloader, playlist, playlist-downloader, spotify, youtube
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎵 TuneHarvester
Music tool with Spotify/Youtube playlist extraction and more.
## Features
- 🎵 **Multiple Sources**: Spotify playlists, YouTube playlists, individual tracks
- 📋 **Smart Metadata**: Combines Spotify API + Last.fm for complete track information
- 🎯 **High Quality Audio**: Downloads best available audio format (M4A/AAC)
- 📁 **Organized Downloads**: Automatic folder structure and filename formatting
- ⚡ **Fast & Efficient**: No browser automation, pure API integration
- 🔒 **Privacy Focused**: No telemetry, diagnostics or user data collection
- 📖 **Open Source**: Free and libre software under BSD-3-Clause license> [!NOTE]
> It is still **recommended** to support creators by engaging with their YouTube channels/Spotify tracks (or preferably by buying their merch/concert tickets/physical media).## Installation
1. **Clone repository**:
```bash
git clone https://github.com/sogik/TuneHarvester.git
cd TuneHarvester
```2. **Install dependencies**:
```bash
pip install -r requirements.txt
```3. **Configure environment variables**:
```bash
cp .env.example .env
# Edit .env with your credentials
```## Get Credentials
### Spotify API (Required for Spotify playlists)
1. Go to: https://developer.spotify.com/dashboard/
2. Create a new application
3. Copy **Client ID** and **Client Secret** to `.env`### Last.fm API (Optional - for enhanced metadata)
1. Go to: https://www.last.fm/api/account/create
2. Create a developer account
3. Copy your **API Key** to `.env`## Usage
### Spotify Playlist
```bash
python app.py "https://open.spotify.com/...." --playlist-name "Today's Top Hits"
```### YouTube Playlist
```bash
python app.py "https://www.youtube.com/playlist?list=...." --playlist-name "My Mix"
```### Individual Song
```bash
python app.py "Artist Song"
```### Text File Playlist
```bash
python app.py my_songs.txt --playlist-name "Custom Mix"
```### Extract Only (No Download)
```bash
python app.py "https://open.spotify.com/playlist/..." --extract-only
```### Custom Download Path
```bash
python app.py "Artist Song" --path "/path/to/downloads"
```## Legal Notice
> [!CAUTION]
> This software is provided for educational and personal use only. Users are responsible for complying with applicable copyright laws and terms of service. Please support artists by purchasing their music.## License
TuneHarvester is open source and licensed under the [BSD-3-Clause](/LICENSE) License.