Enjoying Flow? Consider supporting its development on Open Collective or Patreon to help keep the app free, open source, ad-free, and improving!
About
Flow Desktop is a privacy-first YouTube and YouTube Music client - no account, no ads, no analytics, no telemetry. It is the desktop companion to Flow for Android.
Highlights
- A rebuilt music experience: new home shelves, radio, a full player that matches Flow for Android, and a new equalizer with AutoEQ and EqualizerAPO presets.
- Scrobbling to Last.fm, Libre.fm and ListenBrainz, and music controls in the menu bar or system tray.
- Word-by-word lyrics ported from Flow for Android, with translations, duets and two new lyrics sources.
- Home learns and ranks the way Flow for Android does, and keeps Shorts, members-only and unplayable videos out.
- Playback uses the same chain of YouTube clients as Flow for Android, with fewer bot checks and videos that recover on their own.
- Downloads save as MP4 or M4A with artwork, chapters, lyrics and details inside the file, and pick up where they stopped.
- Optional tabs, more than one window, and Back and Forward that return to where you were.
- Native macOS window controls, 120 Hz on ProMotion screens, and a sturdier AppImage on Linux.
Behavior changes
- Tabs are optional and off by default. Turn them on in Settings > Content & UI > Open pages in tabs.
- Video downloads default to 1080p, and Auto now means 1080p instead of the largest file. The download dialog style setting is gone.
- Download artwork is now one switch, Also save a poster image next to the file, off by default.
- Saved subtitle sizes and positions from older builds reset to the defaults.
- The AppImage needs glibc 2.39 or newer. On Ubuntu 22.04, Mint 21 or Debian 12 use the .deb instead.
- In-app updates are off when Flatpak or a package manager installed Flow, or when it runs as a plain binary. Settings says what handles updates instead.
Music
- The music home opens instantly from a saved copy, refreshes in the background and keeps your last feed when you are offline.
- New shelves built on your listening: Listen Again, Trending, a morning, evening or late-night rotation, Speed Dial with one-click shuffle, Rediscover, Deep Cuts, Artists for You, Popular artists, Mixed for you, genre mixes, a mood Vibes row and releases from your favorite artists.
- Charts follow the country set in Settings, Daily Mixes open as their own playable page, and a new Moods and genres browser keeps each page's shelves with their titles.
- Similar to now mixes in artists and playlists, community playlists can be sampled from the home, Quick Picks no longer fill up with chart hits or one artist, and "See all" opens the right page.
- Fixed related songs, Daily Mixes and the Similar to shelves coming up empty after YouTube Music added a Comments tab next to Related.
- Album cards play without loading the album first, albums show their release year, playlist cards show their song count, and explicit badges show on albums and playlists.
- Music search only offers the categories YouTube Music has results for. Podcast episodes show as episodes of their show and play when clicked, and profiles open their channel page.
- An artist's Shuffle plays YouTube Music's shuffle of their whole catalogue and Mix plays their station. Artist pages link the sources under the bio.
- Settings has a Music section with every music setting in one place.
Music player
- Songs start in a few seconds instead of up to 15, and change with no gap: the next song is buffered before the current one ends, even in the background.
- A song that stops loading recovers and carries on where it stopped, after an expired link, a network drop or a format that cannot be decoded. Retry no longer restarts the song, and a song you paused stays paused.
- A removed or region-locked song is skipped instead of stopping playback, at most three in a row.
- Start a radio station from any song menu without changing your Autoplay setting. Radio follows YouTube Music's own mix, keeps going after a shuffled queue ends, holds at most two songs per artist and says when it has run out.
- Shuffle rearranges the queue so every song plays once, and turning it off puts the original order back. Removing a song or clearing the queue can be undone.
- Swipe a song in Up next left to play it next or right to remove it, by dragging or with two fingers on a trackpad, as on Android. Settings > Music can change what each side does.
- The full player takes its colours from the cover like Flow for Android, stays dark in light themes unless you turn on "Light in light theme", and can use black and white or the app theme on its controls.
- On wide windows the song sits on the left with Up next or the lyrics beside it, and the side pane can be hidden. The artwork shrinks to fit short windows.
- New Immersive Artwork background: the cover fills the top or side of the full player and fades into it.
- Drag the music dock up, or swipe up on it with two fingers, and the full player grows out of it as on Android. The dock has larger artwork with a playing animation.
- Keyboard shortcuts match Flow for Android: Space or K to play, J, L and the arrows to seek, Up and Down for volume, M to mute, Shift+N and Shift+P to skip, 0 to 9 to jump, and S, R and Q for shuffle, repeat and the queue.
- The full player has its own volume button, the mouse wheel changes volume and Shift with the wheel seeks. The seek bar glides with the song and seeks once when you let go.
- The song menu adds Start radio, Equalizer, Not interested, Don't recommend this artist and Watch video, which opens the song's official music video.
- Media keys and the system's Now Playing controls follow whichever player started last and can seek. Starting a video pauses the music and starting music pauses the video.
- Flow reopens the music player on the song you stopped at, with its queue, shuffle order and radio. A new "Resume long tracks" setting, off by default, resumes tracks of 10 minutes or more.
- History and recommendations count the time a song actually played, including in the background, so skipping to the end no longer counts as a full listen.
- Music controls in the menu bar or system tray: the current song, Play or Pause, Previous, Next and Show Flow. On Linux the tray is off by default and needs libayatana-appindicator3, which the packages now bring along.
Scrobbling
- Scrobble to Last.fm, Libre.fm and ListenBrainz from Integrations. A song counts after half its length or four minutes, songs of 30 seconds or less never count, and videos are never sent.
- Listens wait while you are offline, up to 2,000 per service. Show now playing, Love liked songs, Scrobble during Deep Flow and your own Last.fm API key are options.
- Your Last.fm password is never stored. Sessions live in one system keychain item, never in sync, backups or exports, and Flow reads it at most once per launch. If you refuse access, listens wait and Settings offers Allow access.
Audio and equalizer
- A new equalizer, the same as Flow for Android's: graphic and parametric modes, a response graph you can drag, per-band type, frequency, gain and Q, hold to compare, preamp and bass boost.
- Android's 13 presets, your own presets with Undo on delete, and AutoEQ and EqualizerAPO import and export from a file or the clipboard.
- The equalizer is saved with your settings, backed up and synced with Flow for Android, and your old gains carry over. Boosts no longer distort, thanks to an automatic preamp and a soft limiter.
- The equalizer also works on videos and the pop-out player, from the video settings menu. Where audio processing does not work, as on some Linux setups, playback stays normal and the menu says so.
- Audio only goes through processing once the equalizer changes the sound, and resumes on its own after sleep or an output device change.
- Loudness normalization is measured like on Android and can be turned off. Downloaded songs keep their loudness value, so they no longer play louder than streamed ones.
- Stable volume plays YouTube's stable-volume audio on videos that have it, and a new Normalize volume across videos setting turns down videos mastered too loud.
- Music has its own playback speed from 0.5x to 2x with the pitch kept, and an optional crossfade of 1 to 12 seconds that keeps gapless album joins.
- The music volume slider follows how loud it sounds, and your saved volume plays at the same level.
- On Windows, the volume mixer lists Flow by its own name and icon instead of "Microsoft Edge WebView2".
Lyrics
- The lyrics view is a port of Flow for Android's: lines spring into place, the sung word fills behind a soft edge, long notes glow and instrumental breaks show breathing dots. Nothing moves while the song is paused.
- Translations and romanization under each line, duets on both sides, background vocals with their line, right-to-left Arabic and Hebrew, and line-by-line lyrics that fill word by word.
- A lyrics menu adjusts the timing, picks another source, edits, copies or saves the lyrics as an .lrc file, and sets their alignment.
- Two new sources: lrc.red for word-by-word lyrics and Unison for lyrics people submit. Providers can be reordered in Settings.
- Lyrics are looked up as soon as a song starts, by its main artist and title, so songs with several artists and live or remix versions find the right lyrics. BetterLyrics no longer switches off for 10 minutes after a song it does not know.
- Lyrics are kept as files in Flow's app data instead of browser storage, which could fill up. Settings shows their size and can clear them.
- Downloaded songs show their lyrics offline at once, from the .lrc file or from inside the song, and the saved copy is listed first in Choose lyrics source.
Player
- Hovering the seek bar shows a preview frame, and the most-replayed graph shows which parts people watch again.
- Subtitles look like YouTube's with roll-up auto captions, scale with the player from 50% to 400%, and can be dragged anywhere on the video.
- Theater mode glides into place and back while comments and chat stay loaded. Its ambient glow is lighter, can be turned off with Ambient mode, and is off on Linux.
- In fullscreen, chapters with the transcript, the queue and live chat open as a side panel that narrows the video, and stay open when you leave fullscreen.
- The settings and right-click menus have a cleaner look, close on any click or Escape without pausing the video, and only one is open at a time.
- The pop-out player moves when you drag the video itself (#140), and Long Press Speed has an Off choice.
- Leaving the page of a paused video shrinks it into the mini player, still paused.
- The queue panel names the playlist you are playing and links back to it. Queue rows drag to reorder, and removing a video from Watch Later or your own playlist offers Undo.
- One sleep timer serves both players, with Android's choices: 10 to 90 minutes, a custom time, End of song and Quit Flow. Music fades out over the last 20 seconds.
- Chapters come from YouTube with their thumbnails, and stray timestamps no longer become fake chapters.
- The watch page shows every collaborator with their own subscribe button, hashtags, badges like Unlisted and more related videos.
- Finished live streams replay their chat, live chat switches between Top and All, and live streams show how many are watching.
- Expanding a description shows its headline numbers, the songs used in the video and the creator's links. YouTube links open in the app, hashtags search and timestamps seek.
- Comments show who pinned or hearted them, mark creators and verified channels, sort by Top or Newest and say when comments are off.
- An upcoming premiere or live stream shows a countdown and starts on its own when it goes live.
- Clicking a related video, Next or autoplay switches straight to the new video, without the old one loading again for a moment.
- The seek bar and time stop redrawing while the video is paused or the controls are hidden.
Playback reliability
- Playback tries the same chain of YouTube clients as Flow for Android: visionOS, then mobile web and web through SABR streaming, then the Android VR builds, then the Android app.
- Fewer "Sign in to confirm you're not a bot" errors: Flow keeps one anonymous YouTube identity for up to a week and gets a fresh one when YouTube asks. Diagnostics can reset it.
- A video that stops partway gets fresh links and resumes where it stopped, and SABR streams no longer stop after an hour.
- A source that never starts is dropped after 30 seconds for the next one. When nothing plays, the player says so instead of spinning forever.
- A client YouTube starts refusing is tried last for half an hour, but a VPN or network change no longer counts against it.
- YouTube requests give up after 20 seconds and retry after a dropped connection. Playback has its own connection, so videos opened at launch no longer wait behind the feeds.
- Members-only videos, rate limits, blocked networks and deleted videos each get their own message instead of a generic error.
- Videos YouTube serves only to web players play without Node, and videos the app clients offer below 720p play in HD from the web clients when YouTube has it there.
- A new Remote signature fallback setting in Network, off by default, can ask PipePipe's public decoder to unlock the TV app's streams.
- The watch page loads from one YouTube request instead of four, and the player keeps 30 seconds of video behind the playhead instead of up to two extra minutes.
- The audio picker prefers the normal track over its volume-compressed twin, and subtitles translate under one Auto-translate menu.
Home and recommendations
- Home is built and ranked the way Flow for Android does it: fresh uploads from channels you follow, videos related to what you watched, liked or saved, searches for each interest, and channels like the ones you follow.
- Each interest gets its own share of Home, videos that share nothing with your interests are left out, and a video shown recently stays away for a while.
- Recommendations learn like on Android, from searches, Watch later, playlists, downloads, subscriptions, the formats you watch and the time of day. Each video teaches once.
- Topics are read like on Android, so "Guitars" and "guitar" are one interest. Your profile is converted once on the first start, with a copy kept.
- "Not interested" hides the video for good and its channel for two weeks without blocking it, stops Home showing that channel's uploads until you watch it again, and cuts the topic more each time. Rejections fade over months.
- Home opens at once from the feed you last saw, keeps loading as you scroll, offers Retry on a failed page and Refresh at the end, and says when it could not load.
- Each video's menu says why it is on Home, and chips show your strongest interests, New to you and Recently uploaded, with related interests grouped under one chip such as Gaming.
- Shorts stay off Home and out of the videos in Subscriptions. Flow remembers which videos are Shorts from every source, and checks recent short uploads for the portrait frame every Short has.
- Members-only videos, premieres that have not started and videos that failed to open stay off Home. Subscriptions can hide these too with "Hide Videos That Can't Play".
- New "Hide Videos Older Than" and "Hide Videos You've Already Seen" settings in Settings, Content, both off by default.
- Your taste groups the interests Flow learned, lists hidden channels by name and the channels Home picks uploads from, and lets you unblock or forget them.
- Importing a profile or backup takes effect at once, a damaged profile is kept as a copy, and resetting keeps your blocks and hidden videos.
- Home's related lane works again now that dates like "2d ago" are understood, and music played in the video player no longer shapes video recommendations.
Shorts
- Shorts teach recommendations like on Android: swiping past early is a skip, watching most is a watch, and a Short seen this week waits before it comes back.
- Shorts you watch are kept in history and stay Shorts whatever their length, so they stay out of Continue Watching.
- The Shorts feed follows Shorts you liked, saved or watched through, favours reels with more likes, and opening Shorts from a Short shows ones like it first.
- The Shorts feed's subscription lane works again, its pages are about a hundred times smaller, ads are dropped, and your interests and blocked channels apply.
- A Short found in search or on a channel opens in the Shorts player, and Shorts fill the window's height on large screens.
Search and explore
- The search box has richer suggestions with pictures, plus songs, artists, albums and videos from YouTube Music that open or play right away.
- Searches are remembered on this computer and shown in the empty search box, with a button to remove one or clear them all. Deep Flow keeps searches out unless history is allowed there.
- Results show the Shorts, "Latest from" shelves, playlists and subscriber counts they used to drop, filters work as YouTube applies them, and a misspelt search says what it searched for instead.
- Explore works again with YouTube's Live, Gaming, Music, News, Sports, Learning and Fashion & Beauty pages for your region.
Channels and subscriptions
- Channel pages show the channel's own Home shelves with See all, a header with the handle and counts, and an About panel with links, join date and views.
- Channel tabs use the channel's own sort and filter options, and posts show full galleries, poll results and quizzes.
- Pasted @handle, /c/ and /user/ links open the right channel, and searching inside a channel keeps loading results past the first page.
- Subscriptions no longer lose a channel's uploads when its feed fails: Flow retries, reads the Videos tab, and names any channel it still could not read.
- Subscriptions show premieres as upcoming, leave out members-only uploads and show view counts.
- The Subscribe button eases between states, shows a bell when notifications are on and offers All or None. Unsubscribing offers Undo.
Playlists
- Playlist sorts do what they say: Date published sorts by when each video came out, and Date added by when you added it. Each playlist remembers its sort.
- Add times are kept from Android backups and travel with sync.
- Long YouTube playlists load past their first 100 videos, show their real title and count, and download or save in full.
- Tracks from sync or an import without a length, view count or upload date get them filled in when the playlist is open.
Downloads
- Videos save as MP4 with AAC audio in every quality, VP9 and AV1 included, so they open in more players. A video with no AAC track saves as MKV, which now seeks at once too.
- Downloaded videos carry a sharp cover, their title, channel, description, release date, chapters and YouTube link inside the file. Flow keeps its own copy of the artwork for offline use.
- Songs save as M4A files named Artist - Title with their cover, album, track number, year and lyrics inside, and albums save as numbered songs in an Artist - Album folder.
- A new switch, Save lyrics as an .lrc file, keeps synced lyrics beside each song for desktop music players.
- Saved videos start at once offline with sound and picture in step, and keep their description, chapters and SponsorBlock segments.
- Unfinished downloads pick up where they stopped after a restart, get a fresh link when YouTube refuses an old one, and a failed download retries from where it stopped.
- A redesigned video download dialog: video or audio only, codec filter, every quality with its size, dubbed audio tracks, subtitles, file name and folder.
- A redesigned music download dialog shows the cover and credits, offers High quality or Data saver, and lets you fix the title, artist and album. Albums and playlists ask first, with their size.
- Subtitles chosen for a download are saved beside the video as an .srt file and play in Flow offline.
- New Downloads settings: preferred codec, music quality, subtitle language and how many downloads run at once.
- Download cards show artwork, the current step, speed and time left, with Play, Show in folder and Retry. Several downloads share one card.
- Pausing a download lets the next one start, playlists and albums save to your chosen folder, and a song download no longer replaces the video download of the same item.
- Flow shows a system notification when a download finishes or fails in the background. It can be turned off in Settings.
Tabs and windows
- Going Back returns to where you were on the page. Mouse side buttons, Alt+Left and Alt+Right (Cmd+[ and Cmd+] on a Mac) go back and forward.
- Each tab keeps its own video. Switching away keeps it playing in the mini player, and opening a video in another tab pauses the first one where it was.
- Open tabs show in the side rail once there are two or more, with right-click New tab, Duplicate, Close other tabs and Close. Tabs come back the next time Flow starts.
- Cmd+T (Ctrl+T on Windows and Linux) opens a tab, Cmd+W closes it, Ctrl+Tab moves between tabs and Cmd+1 to Cmd+9 jump to one.
- Flow can have more than one window, and windows stay in step: a like, subscription, playlist change, block or setting in one shows up in the others.
- Starting a video in one window pauses the others. Music plays only in the main window.
- Video, Short, playlist and channel menus have Open in new tab and Open in new window, and middle-click or Cmd-click opens a background tab.
- Move to a new window carries a video over at the same second, and Cmd+Shift+N (Ctrl+Shift+N) opens a new window.
- On Windows and Linux, closing the main window while another is open hides it, so music and downloads keep going.
Interface
- Saving, liking or adding anything shows a toast with its poster and title, where it went, and View and Undo. A failed save offers Retry.
- Right-click and three-dot menus are redesigned, with the item's poster and title, quick buttons for the main actions, and arrow-key navigation. Videos gain Share.
- Menus, dropdowns and search suggestions grow from their button and fade out the same way everywhere, and pages fade in with a small rise.
- Copying or sharing gives a real YouTube link instead of Flow's own address. Share opens the system share sheet where there is one.
- Video cards show verified ticks, YouTube's badges such as 4K, CC and New, Members only labels and an Upcoming badge on premieres. Collaboration cards show every channel.
- A new Content language setting has YouTube write dates, view counts, labels and its translated titles in one of 75 languages.
- Titles, descriptions, comments, live chat, channel pages, posts and the Diagnostics log can be selected and copied. Right-clicking selected text offers Copy and Search Flow.
- The collapsed side rail shows icons only with tooltips, and opening or closing it slides smoothly.
- Resizing the window is smoother, and soft artwork backgrounds are drawn once instead of blurred on every repaint.
- Video cards load a smaller thumbnail when the card is small enough for it.
- Open Collective is now the main way to support Flow, ahead of Patreon. It lists every contribution and expense publicly.
Settings and themes
- Six new themes from Flow for Android: Deep Ocean, Gunmetal, Cosmic Void, Cyberpunk, Royal Gold and Cream Paper, each in light, dark and AMOLED.
- Custom themes can be exported and imported, including ones made on Flow for Android. An imported theme never replaces one you already have.
- New Theme file option under Settings > Appearance: Flow reads custom.css from its settings folder and reloads it when it changes, so other tools can restyle Flow with --flow-* colour variables.
- The music player background now syncs between desktops, and Skip silence no longer syncs in from Flow for Android.
Sync
- Syncing with a phone works in every direction again: the desktop handles collections it does not know yet, like Notes on newer Android builds, and no longer hangs when it scans a phone's send code.
- Pairing codes no longer show as expired when the two clocks disagree, and codes that point outside your local network are refused.
- The connection stays up while you read the merge prompt, success is only reported once the data is saved, and stalled sessions time out.
- Sync errors say what went wrong and what to try, and the pairing screen can copy the connection data for a device without a camera.
- Removing history, unliking, deleting playlists or tracks and deleting subscription groups now reach your other devices instead of coming back on the next sync.
- Renamed playlists no longer leave a copy behind, a newer setting changed on the desktop is no longer overwritten, and recommendation counts no longer grow on every sync.
- Flow for Android sends its recommendation profile to the desktop again.
macOS
- Flow uses the native macOS window controls and titlebar again. Closing the window hides it and keeps playback and downloads running until you quit.
- The window background follows your theme while resizing instead of showing a mismatched color.
- On 120 Hz ProMotion screens Flow now draws at 120 frames per second instead of 60.
- The music equalizer and crossfade are now heard on macOS. Once either is on, songs stream as AAC because WebKit cannot process Opus.
- AAC songs show and play for their real length instead of running on in silence at twice their length.
Linux
- The AppImage is built on Ubuntu 24.04 with a newer WebKitGTK that no longer crashes on color emoji fonts, the cause of the freeze on Fedora 44 and Bazzite.
- The AppImage drops its bundled Wayland libraries again to avoid the EGL_BAD_PARAMETER crash on newer Mesa, and uses your system's VA-API libraries for hardware decoding.
- Thumbnails, avatars and artwork load in the AppImage on openSUSE, Fedora and other distros where they showed blank.
- Open in browser, links, Open logs folder and Show in folder work in the AppImage (#141). When no browser opens, Flow offers to copy the link.
- Flow remembers which graphics workaround last worked and starts NVIDIA systems on Wayland with the DMABUF renderer off. The X11 fallback is only used when an X server is running.
- A new Graphics compatibility setting under Appearance, and a "Start with safe graphics" launcher action, help when the window opens blank.
- If the page inside the window crashes, Flow reloads it instead of freezing, and quits after three crashes in a minute so the next launch starts clean.
- The .deb, .rpm and AppImage now find Flow's bundled poToken and signature scripts, so the backup playback clients work with Node installed.
- Arch Linux packages on the AUR: flow-desktop builds from source and flow-desktop-bin installs the release .deb.
- Nightly builds now include a Flatpak (#91), the first step toward a Flathub release.
Under the hood
- Updated Tauri to 2.12 and its plugins, React, the video players, the database layer, sync encryption, tagging libraries and the build tools.
- On Windows, Flow keeps WebView2's default protections, including SmartScreen.
- Removed unused code from the SABR streaming engine and MusicBrain, which clears 21 build warnings.
- Nightly builds and pull request checks finish faster, and Linux nightly builds package again.
- GitHub release notes are built from the changelog the same way as Flow for Android, with the release date, status and a note on how to support Flow. A release stops if its changelog is missing.
Supported devices
- Windows 10/11 (x64 and ARM64)
- macOS 13+ (Intel and Apple Silicon)
- Linux (x64 and ARM64 - AppImage, .deb, .rpm)
Contributors
A big thank you to everyone who contributed to this release. Your fixes, ideas and time made beta3 a lot better!