Categories

  • Announcements regarding our community

    98 Topics
    108 Posts
    jonasJ
    Bugfixes: Fixed shuffle skipping tracks and repeating tracks already played, when adding tracks, removing the current track, choosing a track, turning on shuffle while playing or repeating the playlist Fixed going back to the previous track changing the shuffle order Fixed album and grouping shuffle skipping albums or groupings when choosing a track Fixed inside album shuffle and album repeat not finding the next track on the same album after removing the current track Fixed track repeat playing the wrong track after removing the current track Fixed moving several tracks that are not next to each other to another playlist removing the wrong tracks from the source playlist Fixed undo right after startup removing the restored playlist Fixed undo after repopulating a dynamic playlist acting on the wrong tracks Fixed "play now" playing the wrong track when inserting tracks into an automatically sorted playlist Fixed tracks copied to another playlist, or added to the same playlist again, being shared between the playlists, which broke updating and saving the remaining tracks when one of them was removed Fixed OpenTidal cover provider search (API changed) Fixed songlyrics.com and letras.mus.br lyrics being blocked (Windows) Fixed unstable ASIO playback (Windows|MinGW-W64) Fixed ASIO device listing Enhancements: Volume mute is now a separate state instead of setting the volume to zero, and is shown in the volume slider and on-screen display Use uchardet to detect the text encoding of CUE sheets and M3U and PLS playlists (#2336) Use existing src/apicredentials.h when building from source Improved detecting a dark palette and calculating the playlist alternating row color Added Ctrl+B shortcut for showing the sidebar Added a "Scan tracks" repeat mode which only plays a part of each track Added a credentials manager which stores the Subsonic password in the system keyring (libsecret, KWallet, GNOME Keyring, macOS Keychain or Windows Credential Manager) Added an option to disable notifications when the title of a radio stream changes Added options to show the album edition and audio quality in Qobuz search results, and the audio quality in Tidal search results Added Plex support Added Jellyfin support Added a bitrate setting for Spotify (96, 160 or 320 kbit/s) Show a warning in the Spotify settings when the GStreamer Spotify plugin is too old to play tracks (older than 0.14.4), and explain the possible causes when a Spotify track can't be played (macOS) Fixed alternating row colors being painted in the empty area below the playlist (Windows) Disabled fading when ASIO output is selected Full Changelog: https://github.com/strawberrymusicplayer/strawberry/compare/1.2.30...1.2.31 Linux AppImage, macOS and Windows release is available on Patreon: https://www.patreon.com/jonaskvinge/posts/strawberry-1-2-171274217
  • A place to talk about whatever you want

    138 Topics
    475 Posts
    P
    @spoo333 Thanks for the feedback. As far as how easy difficult these changes are for the remote. If the functionlity already exists in the player pretty straight forward. for anything else it would depend on the change.
  • Any issues or problems

    840 Topics
    3k Posts
    H
    @jonas Hi Jonas, got on search for some hours. Problem is that api.tidalhifi.com is the legacy one and to get a Client ID, you have to fetch X-Tidal-Token from a legacy app. (see below) Your statement at https://forum.strawberrymusicplayer.org/topic/6048/tidal-authentication-error seems to be wrong because of this require openapi.tidal.com! Couldn't you please update api.tidalhifi.com to openapi.tidal.com where i can just create an app @developer.tidal.com and that's it. *To use Tidal with Strawberry Music Player, you need a legacy Tidal API token (often referred to in the community as an X-Tidal-Token or client string used by older official apps or specific third-party integrations). You are entirely correct that the modern developer portal (openapi.tidal.com) issues client IDs intended for the new Open API, which are incompatible with the older endpoint (api.tidalhifi.com) that Strawberry relies on. How to Find or Obtain the Required Token Because Tidal does not officially issue legacy API tokens to end-users anymore, the token must typically be sourced from an application package or extracted using network monitoring tools. The most common approaches include: Extracting from a Legacy Tidal Client / APK: Many open-source media player communities (such as for Strawberry, Clementine, or similar client tools) rely on tokens extracted from older desktop or mobile versions of the official Tidal app where the client token was embedded in the installation files or cache. On Linux or Android environments, users traditionally locate configuration or cache files (such as okhttp cache files on Android or application binaries) and search for the X-Tidal-Token string. Using Network Inspection (Fiddler / Wireshark): Some users capture traffic from an older official desktop client. By routing the official app's traffic through a local proxy tool like Fiddler or Charles Proxy while logging in, you can inspect the HTTP headers of the outgoing requests to api.tidalhifi.com to view the client token being passed in the headers. Community Repositories and Discussions: Because hardcoded legacy client tokens frequently change or get deprecated by Tidal's backend infrastructure, the Strawberry Music Player community forums and issue trackers are generally the best place to look for current working tokens or scripts designed to acquire them. You can check the Strawberry Music Player Forum where users discuss working implementation strings. To use Tidal inside **Strawberry Music Player**, you need an older application client ID / `X-Tidal-Token` (which functions as the API client key for the legacy `api.tidalhifi.com` endpoints). The newer developer portal credentials utilize `openapi.tidal.com`, which is incompatible with Strawberry’s legacy implementation. --- ### Does the Linux Flatpak TIDAL Hi-Fi provide the `X-Tidal-Token`? **No.** The unofficial Linux Flatpak client (often based on web wrappers or newer electron builds) communicates with Tidal's modern infrastructure and OAuth setups. It does not natively expose or store a legacy `X-Tidal-Token` in a format that Strawberry can read or use as a Client ID. --- ### How to Get a Client ID / Token for Strawberry Because Tidal has progressively locked down or phased out legacy unauthenticated client strings from their modern desktop and mobile apps, users typically obtain a working token using one of the following methods: 1. **The Android App Cache Method (Older APK):** * Many users sideload an older version of the Tidal Android app (such as version `2.32.1` via an APK archive site) inside an emulator (like BlueStacks or Anbox/Waydroid) or an older phone. * Log into your account on that app version. * Navigate to the app's cache directory using a file explorer: `/Android/data/com.aspiro.tidal/cache/okhttp/` * Copy those cache files to your computer and run a terminal command like: ```bash grep -r "X-Tidal-Token" /path/to/copied/cache/files/ ``` This will reveal the embedded token string required for Strawberry. 2. **Using Third-Party CLI/Python Tools:** * Open-source python packages or command-line downloaders built for Tidal (such as older forks of `tidal-dl` or python-tidal async clients) sometimes store or print out legacy config parameters or client tokens inside their local `.json` configuration files after an initial login. ### How to Get a Client ID / Token for Strawberry Music Player Strawberry requires an API token (historically referred to as an `X-Tidal-Token` or legacy client ID) that interacts with Tidal's legacy/mobile API endpoints (`api.tidalhifi.com`). Official developer portal client IDs use `openapi.tidal.com` and enforce modern security layers that incompatible open-source clients cannot natively parse for playback streams. To make Strawberry work, you need a token sourced from an older mobile client setup or community-vouched legacy strings. #### Methods to obtain one: 1. **Community/Publicly Shared Tokens:** Because extracting raw tokens requires network packet inspection (using tools like Fiddler, Charles Proxy, or looking through older open-source client repositories like `python-tidal`), many users look up known working client IDs shared on the [Strawberry Music Player Forums](https://forum.strawberrymusicplayer.org/) or GitHub discussions. 2. **Mobile App Packet Capture (Advanced):** Traditionally, developers extracted these tokens by routing traffic from an older Android or iOS Tidal APK through an HTTPS intercepting proxy (like mitmproxy or Charles) while logging in. Once you acquire a valid legacy string, paste it into Strawberry's **Client ID** field, check **Use OAuth**, and click login. This will open a browser window for you to safely authenticate your actual Tidal account. --- ### Does the Linux Flatpak TIDAL Hi-Fi Provide an `X-Tidal-Token`? **No.** The popular Linux Flatpak/Snap package (`tidal-hi-fi`) is built by wrapping the official **Tidal Web Player** inside an Electron container with Widevine DRM support. * It communicates directly with Tidal's standard web infrastructure rather than acting as a standalone native API client. * Because it relies on web wrappers and browser-based tokens managed dynamically under the hood, it does not expose or provide a static `X-Tidal-Token` or client ID that you can copy-paste into Strawberry. --- ### Does the Official macOS TIDAL App Provide It? **No.** The official macOS desktop application is a closed-source native/Electron application compiled by Tidal. * It obfuscates its network calls and uses backend authentication tokens dynamically negotiated via secure channels. * Inspecting the macOS app package contents or configuration files will not yield a plain-text `X-Tidal-Token` or legacy client ID suitable for third-party media players like Strawberry.*
  • Ideas from you

    386 Topics
    865 Posts
    K
    With a lot of playlists, I find myself losing track of the actively playing one and would greatly appreciate a command which activates the tab with the currently playing song. The existing command (under Playlist) "Jump to the currently playing track" might be intended to do that (as part of selecting the currently playing song), but it doesn't change the selection in the active playlist, it seems to do nothing at all—a bug or do I misunderstand its purpose?
  • For developers

    38 Topics
    247 Posts
    B
    hxxps://www.dropbox.com/scl/fi/h86x5so2sp8mi4a4dwjy8/strawberry-companion_0.31.0_all.deb?rlkey=xut7589r1uknr8o1kcvjavbm1&st=cajzwx1z&dl=0
  • 6 Topics
    16 Posts
    jonasJ
    @str008 Sent you username and password in private message.
  • Translating to different languages

    3 Topics
    17 Posts
    jonasJ
    @ank99 I didn't see any requests for it in Crowdin, but I've added them now so they should be available right now.
  • General music discussion

    3 Topics
    11 Posts
    SummonerS
    Haiduk - Archdevil https://www.youtube.com/watch?v=ldtWfvOH6H0
  • Got a question? Ask away!

    63 Topics
    187 Posts
    J
    If I drag/drop files from the internal filelist to a playlist, I see several duplicates. However, when I drop the same files from the external file manager (NEMO), it is all fine. I use Strawberry 1.0.23 Under Linux Mint 22.3 Cinnamon Edition. Thanks
  • Blog posts from individual members

    4 Topics
    4 Posts
    A
    Hi all, I searched the forums, but couldn't find a match. First off, I'm running Debian 12.6 "Bookworm" KDE DE. In Strawberry, every time I select 'Show in file browser' in the context menu it opens up Easytag instead of the Dolphin file manager! Any reason why that would be? Thanks in advance!