Hi. I recently published my app on Flathub and have been steadily updating it to make it better.
With it you can download Music from Youtube and tag it to create a beautiful collection of local Music. Check it out: https://flathub.org/apps/net.fhannenheim.musicfetch
Thank you very much! You are amazing.
I am trying to use it, but when I download the music, nothing shows up in my music directory. I read the logs and saw that it is trying to move the downloads to ~/Music. I don’t have that directory, in my localization, it is ~/Música. I tried creating a symlink, but it did not work. Is there any way to fix this? I can share the logs if you want
Hmm. You can set the Download directory in the settings, by clicking on the settings button on the top left.
I didn’t anticipate Localized Music directory names
You should check the XDG_MUSIC_DIR environment variable. Most distros have it as a path to the users music folder.
It doesn’t seem to be set in the Flatpak container. Also .config/user-dirs.dirs is inaccessible.
I’ll probably have to request access to that file
Okay I’ve now pushed an update that fixes this issue.
Thanks it worked, great app!
I had similar problems where the logs say it moved the file to my Music directory, but the directory was empty. I made multiple attempts using different directories and making sure the app has permissions with flatseal, but no luck.
It seems like a nice app though, I’m gonna keep an eye on it!
On the download done page there is a button on top with a directory icon, which opens the files in a file manager. Can you please try again and click it and tell me where the files have been downloaded to? That may be a mistake on my part
Hey, thanks for the response! I tried again with the recent update (
--versionsays 1.2.1) and still having the problem. The button you refer to opens my file manager in the system root directory, instead of the download directory shown in settings which is now by default set to my home folder instead of~/Musiclike in the prior version.To recreate, I ran the app from the CLI and searched the videos tab for “flowers”, then clicked download on the top result. The metadata pages had blank values (are they supposed to populate automatically somehow?), and I clicked through until I got to the final page below.

flowers
~$ flatpak run net.fhannenheim.musicfetch --version musicfetch_gui 1.2.1 ~$ flatpak run net.fhannenheim.musicfetch libEGL warning: failed to get driver name for fd -1 libEGL warning: MESA-LOADER: failed to retrieve device information libEGL warning: failed to get driver name for fd -1 MESA: error: ZINK: failed to choose pdev libEGL warning: egl: failed to create dri2 screen libEGL warning: failed to get driver name for fd -1 libEGL warning: MESA-LOADER: failed to retrieve device information libEGL warning: failed to get driver name for fd -1 MESA: error: ZINK: failed to choose pdev libEGL warning: egl: failed to create dri2 screen [2026-01-28T19:22:43Z INFO musicfetch_gui::app] Starting download of 1 songs [2026-01-28T19:22:43Z INFO musicfetch_gui::modules::download] running yt-dlp with args ["--ignore-config", "-x", "-f", "ba", "-o", "/tmp/musicfetch/%(id)s.%(ext)s", "--load-info-json", "-", "-O", "after_move:filepath", "--progress-template", "download:%(progress.downloaded_bytes)s-%(progress.total_bytes)s-%(progress.downloaded_bytes_estimate)s", "--newline", "--progress"] [2026-01-28T19:22:44Z INFO musicfetch_gui::modules::download] All songs downloaded [2026-01-28T19:22:52Z INFO musicfetch_gui::modules::tagwriter] reading filetype from path /tmp/musicfetch/G7KNmW9a75Y.opus [2026-01-28T19:22:52Z INFO musicfetch_gui::modules::tagwriter] filepath extension: Some("opus") [2026-01-28T19:22:52Z INFO musicfetch_gui::modules::rename] moving song to: //1 - .opus [2026-01-28T19:22:52Z INFO musicfetch_gui::modules::rename] creating parent dir: /PS: I tried again with another song (Big Boogie - Shut Up) that seems to have metadata available from however MusicFetch is finding metadata. The logs are slightly different in that it seems to attempt to save the file where it is configured to do so (the home folder), but there’s still not actually a file saved in that location when I click to open in my file manager:
big boogie
$ flatpak run net.fhannenheim.musicfetch libEGL warning: failed to get driver name for fd -1 libEGL warning: MESA-LOADER: failed to retrieve device information libEGL warning: failed to get driver name for fd -1 MESA: error: ZINK: failed to choose pdev libEGL warning: egl: failed to create dri2 screen libEGL warning: failed to get driver name for fd -1 libEGL warning: MESA-LOADER: failed to retrieve device information libEGL warning: failed to get driver name for fd -1 MESA: error: ZINK: failed to choose pdev libEGL warning: egl: failed to create dri2 screen [2026-01-28T19:31:10Z INFO musicfetch_gui::app] Starting download of 1 songs [2026-01-28T19:31:10Z INFO musicfetch_gui::modules::download] running yt-dlp with args ["--ignore-config", "-x", "-f", "ba", "-o", "/tmp/musicfetch/%(id)s.%(ext)s", "--load-info-json", "-", "-O", "after_move:filepath", "--progress-template", "download:%(progress.downloaded_bytes)s-%(progress.total_bytes)s-%(progress.downloaded_bytes_estimate)s", "--newline", "--progress"] [2026-01-28T19:31:11Z INFO musicfetch_gui::modules::download] All songs downloaded [2026-01-28T19:31:17Z INFO musicfetch_gui::modules::tagwriter] reading filetype from path /tmp/musicfetch/B9RNRhoUr6E.opus [2026-01-28T19:31:17Z INFO musicfetch_gui::modules::tagwriter] filepath extension: Some("opus") [2026-01-28T19:31:17Z INFO musicfetch_gui::modules::rename] moving song to: /home/luke /Big Boogie/Shut Up/1 - Shut Up.opus [2026-01-28T19:31:17Z INFO musicfetch_gui::modules::rename] creating parent dir: /home/luke /Big Boogie/Shut Up [2026-01-28T19:31:23Z INFO musicfetch_gui::app::update] Opening directory at /home/luke /Big Boogie/Shut UpEdit: forgot to mention, I’m using Fedora Workstation 43, in case that’s relevant for you.
Good luck with the app, it’s a really good idea!
Congratz on the publishing. :-)
Cool! I don’t really understand the focus on music as you’re probably better off using soulseek to find it, but I’m sure there’s people who will appreciate this.
Well I’m not really an audophile and on soulseek you mostly get FLACs which are bigger in size. My Music directory is already 10Gb and I’m happy with it being mostly opus which sounds good enough for me
tl;dr rust yt-dlp frontend in a flatpak for some reason
yt-dlp is amazing, but not everyone likes to use CLI tools (and, looking down the thread, not everyone prefers native packets as they may cause dependency issues and need extra tools for permissions control).
Even in a geeky Linux space, many people just want to push a button in a nice interface and get what they want. This app provides just that.
Abandon elitism, embrace variety. And use the tools you prefer - after all, plenty of Linux video/music downloaders have yt-dlp under the hood, and I use it on a regular.
Also, CLI apps are not that great on phones. I like CLI on a desktop computer, but on my Debian phone I prefer GUI.
Abandon elitism
Especially the made up kind. 🙄 The good news is lots of people here won’t show up in my feeds anymore.
for some reason
To make it easier to download and use I imagine.
That’s what things like deb and rpm are for, or scripts to download and compile locally.
Edit: thank you tomalley8342 for being the single person to reply with any basic sense. It’s a hell of a thing to thank someone for but with how stupid everyone else has made this comment thread I really do mean it.
It also what flatpak is for. What’s your point?
I don’t even like Flatpak, yet here I am thinking this is a stupid comment.
Congrats to Katzenmann for publishing this app. Will try it on my Debian phone, was looking for something like this!
I can say that the app works on mobile but I still need to optimize it. The UI is a bit weird when the scaled small and the keyboard doesn’t auto-activate because libcosmic is missing support for the wayland protocol used to do that.
tl;dr rust yt-dlp frontend in a flatpak for some reason
This is why we can’t have nice things.
The communityVocal members thereof, instead of seeing genuine effort as something praiseworthy always find the worst stupid angle to belittle well-meaning people from.I’d sure like to know where I belittled OP. The comment is factual, no judgments were made. Not by me anyway.
I’m judging the shit out of you now though.
I mean it’s not that belittling for sure. But you said something you didn’t need to say either. Op is happy sharing their first app and you stating “facts” is something no one asked for. My mother taught me: it’s okay to stfu sometimes




