DrivePlayer
A GTK3 desktop music player that streams audio files stored in Google Drive.
Features
- Streams audio directly from Google Drive via mpv
- Local SQLite library of scanned folders and tracks
- Sidebar navigation by artist, album, genre, or folder
- Metadata enrichment via iTunes, MusicBrainz, and AcoustID fingerprinting
- Google Sheets sync for portable metadata across multiple devices
- Incremental folder sync (adds new files, removes deleted ones)
- OAuth2 authentication via Google::RestApi
Requirements
System packages
sudo apt-get install build-essential pkg-config libssl-dev mpv \
libgtk-3-dev libglib2.0-dev libgirepository1.0-dev gir1.2-gtk-3.0
CPAN dependencies
cpanm --installdeps .
Or install everything in one step:
make install
Setup
1. Create Google Cloud credentials
- Go to Google Cloud Console and create a project
- Enable the Google Drive API: APIs & Services → Enable APIs → search "Drive API"
- Create OAuth credentials: APIs & Services → Credentials → Create Credentials → OAuth client ID → Desktop app
- Note the Client ID and Client Secret
2. Configure the application
Launch the app, open File → Settings, and paste the Client ID and Client Secret. Click Save.
The config file is written to ~/.config/drive_player/config.yaml.
3. Authorise access to Google Drive
google_restapi_oauth_token_creator
Follow the prompts. The token is stored at ~/.config/drive_player/token.dat by default.
4. Add music folders
Open File → Manage Folders and add the Google Drive folder ID (the last path component of the folder's Drive URL) and a display name.
5. Sync
Click Sync in the toolbar or choose Library → Sync to scan your Drive folders and populate the library.
Cross-device sync via Google Sheets
DrivePlayer can store your library metadata in a Google Spreadsheet so it survives across devices or a fresh install:
- File → Settings: enter or create a Spreadsheet ID
- Metadata is pushed to the sheet automatically after each sync
- On a new device, the sheet is pulled automatically when the app starts with an empty database, restoring your library without a full rescan
Files
| Path | Description |
|------|-------------|
| ~/.config/drive_player/config.yaml | OAuth credentials, log level, folder list |
| ~/.config/drive_player/token.dat | OAuth2 token cache |
| ~/.local/share/drive_player/music.db | SQLite track library |
| ~/.local/share/drive_player/drive_player.log | Application log |
License
MIT — see LICENSE