Tidal Player for Sailfish OS
August 27, 2025 ยท View on GitHub
A native Tidal music streaming client for Sailfish OS, built with QML/Qt and Python using the tidalapi v0.7.1 (https://tidalapi.netlify.app/).
TIDAL API Usage
As v0.7.1 is not fully compatible with TIDAL anymore, line 114 of tidalapi/user.py is removed during the packaging process.
Development History
This project development is driven by Claude 3.5 Sonnet AI. The icon is created by Midjourney.
โจ Features
๐ต Core Music Features
- โ Tidal Account Integration - Full OAuth authentication with token refresh
- โ Music Library Access - Browse and search Tidal's complete music catalog
- โ Playlist Management - Create, edit, and manage personal playlists
- โ Playback Control - Play tracks, albums, playlists, and mixes
- โ Media Controls - Play, pause, next, previous with MPRIS system integration
- โ Track Information - Complete metadata display with album artwork
- โ Favorites System - Save favorite tracks, albums, artists, and playlists
๐ Advanced Homescreen System
- โ
Configurable Sections - 8 customizable content sections
- Recently Played, Popular Playlists, Top Artists, Top Albums
- Top Tracks, Personal Playlists, Custom Mixes, Radio Stations
- โ Cache-First Loading - Instant startup with cached content
- โ Priority-Based Refresh - Smart background updates
- โ Toggle Interface - Switch between classic and modern homescreen
๐ฎ Advanced Play Actions
- โ Context Menus - Right-click for advanced play options
- โ
Multiple Play Modes:
- Replace Playlist & Play
- Add to Playlist & Play
- Play Now (Keep Playlist)
- Add to Queue
- โ Configurable Defaults - Set preferred play action in settings
- โ Single-Click Navigation - Click to view details, long-press for play menu
โฐ Sleep Timer System
- โ Modern UI - Sailfish OS native TimePicker integration
- โ Quick Presets - 8 preset buttons (5m, 10m, 15m, 30m, 45m, 1h, 1.5h, 2h)
- โ Custom Time Selection - Full time picker for any duration
- โ
Multiple Actions:
- Pause playback
- Stop playback
- Fade out and pause (10-second fade)
- Close application
- โ Live Progress Feedback - Real-time countdown with system notifications
- โ Cover Integration - Timer display in application cover
๐ Performance Optimizations
- โ Async-First API - 30-50% UI responsiveness improvement
- โ Database Batching - 25% query performance improvement
- โ Request Deduplication - 30% network efficiency improvement
- โ Incremental Cache Cleanup - Eliminated periodic UI freezes
- โ LRU Cache Management - Memory leak prevention
๐ง System Integration
- โ MPRIS Media Controls - System-wide media control integration
- โ Reduced Permissions - Only Internet + Audio permissions required
- โ System Notifications - Native notification banners
- โ Cover Page Support - Track info and timer display in cover
- โ MiniPlayer - Persistent mini player with progress slider
Requirements
Include https://openrepos.net/user/7598/repository and https://openrepos.net/user/2414/repository as repository:
or look for Python3-request and Python3-future
in storeman and add the corresponding repos.
and
- Python 3.x
- Qt/QML
- PyOtherSide
- Tidal API credentials
๐ฆ Getting Test Builds
Automatic RPM Builds
This project automatically builds RPM packages for all Sailfish OS architectures:
For Testing Latest Features:
- ๐ Master Branch Builds - Every push to master triggers automatic builds
- ๐งช Pull Request Builds - Every PR gets tested with automatic builds
- ๐ฅ Download Location - Go to Actions, click on latest build, download artifacts
For Stable Releases:
- ๐ Tagged Releases - Official releases with changelog in Releases
- ๐ Release Notes - Complete changelog and installation instructions
Supported Architectures
- aarch64 - Modern ARM64 devices (Xperia 10 II/III/IV, etc.)
- armv7hl - Older ARM32 devices (Jolla Phone, Xperia X, etc.)
- i486 - x86 emulator and Intel-based devices
Installation
- Download the appropriate RPM for your device architecture
- Transfer to your Sailfish OS device
- Install via Settings โ System โ Software Updates โ Manual Installation
- Or use
pkcon install-local harbour-tidalplayer-*.rpmfrom terminal