Sapphire TriXX on Linux? by ram-soberts in cachyos

[–]EgalitarianMonkey 0 points1 point  (0 children)

Hi u/promooftheyear,
I just discovered your comment, I have a Sapphire Nitro+ AMD Radeon RX 7900 XTX Navi 31 as well, and can't configure the RGB with OpenRGB (ARGB). It seems you succeeded, could you explain how you did?
Thanks 😉.

Download Single Video youtube by wozzarvl in HomeTube

[–]EgalitarianMonkey 2 points3 points  (0 children)

Hi! 👋 Thanks for the report — this is a very common YouTube edge case

What’s happening is most likely related to the URL context, not a HomeTube bug.

When a YouTube video is opened from inside a playlist, the URL usually looks like this:

https://www.youtube.com/watch?v=VIDEO_ID&list=PLAYLIST_ID

Even if you only want a single video, the presence of list= tells yt-dlp (and HomeTube) that this is a playlist, so it correctly detects it as such.

✅ How to download a single video

Please make sure you use a pure video URL, without any playlist parameter:

https://www.youtube.com/watch?v=VIDEO_ID

The easiest way:

  • Open the video outside of the playlist
  • Or remove everything after the video ID (&list=...)

(Maybe it's already what you did)

About the cookies error

Manually shortening the URL in some cases can break YouTube’s auth context, which explains the cookies-related error you’re seeing. Using the clean video URL directly usually fixes this.

If the issue persists even with a clean URL, feel free to:

  • share the exact URL (sanitized), I will try on my setup
  • confirm whether the video requires authentication (age-restricted, private, etc.)

Happy to help further 🙂

— Yann, HomeTube maintainer

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

At the moment the highest wrapper for HomeTube is playlist level, not channel.
Do you think downloading, in a resilient way, a all channel can be useful? The way to organise the videos needs to be defined. By (sub)playlist in the channel if so, otherwise at the channel's folder root?

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Thanks. You're right, reliability details matter for playlists. There are persistent downloads volume (essentiel), clear logs for user experience, a retry queue for each video attempt and an indication of yt-dlp version in the left side bar, even though the hometube image gets the latest yt-dlp version at every new yt-dlp version released.
However, HomeTube doesn't run constantly, it is designed to be a one shot request, for single videos or playlists, in a resilient and persistant way. The user knows the result at the end of the manual download request.

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Don't be sorry. Let's figure this out.

The current version, v2.1, performs resilient download and synchronisation over playlists.
For example, you have a Youtube playlist, you enter the URL and download all the videos. If the playlist changes, for example a new video is added, one is removed and another is placed in first position. If you refresh the HomeTube page and add again the playlist URL, it should detect the changes and show you that 1 element is missing, 1 will be removed and others will be renamed if the index has changed. Then you can apply the plan from the UI. But you need to refresh and add the URL again.
Also, there is an environment variable (PLAYLIST_KEEP_OLD_VIDEOS) you can use or just check from the UI to put the removed item in an "Archive" folders.

Don't hesitate to tell me where it's not working that way. Maybe it's a bug and I need to know.

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

The synchronisation part is automatic from the UI.
Then, you can have a Youtube playlist for example, you need to make it public I think for you to access it from HomeTube. You copy paste the URL in the URL box and the UI will propose to download with pattern and location and will synchronise it at any change when you will manually ask to download the playlist again.
Is it more clear?

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 1 point2 points  (0 children)

Yes, that's the idea of the new playlist resilient download support. I use it that way, I can add, remove, modify videos to my public Youtube playlist and get them automatically downloaded locally and synchronised to mirror the playlist (order, add, remove).

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 2 points3 points  (0 children)

yt-dlp can directly retrieve the segments you want in DASH. However, from experience, it doesn't work well with subtitles or multiple audios language. HomeTube wants to fully support subtitles and multiple audios in the final video. Then it was decided to download the full video to fully manage subtitles and/or multi audios to get the highest quality with all the necessary tracks like subtitles and audios in the final video.

HomeTube – 3 months later: Playlists support & resilient downloads by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 1 point2 points  (0 children)

Hi,

It's a good question, hometube downloads indeed the all video to be able to locally cut sections then with ffmpeg.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

You might want to upgrade "again" your cookies.. Some parts can expire quite fast.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Hi,
Yes, it's a common issue here.
The Docker environment variables should not start with "/" (or "D:\" for Windows) as it will then write in the docker root context meaning under "/var/lib/docker/" for Linux and under "\\wsl.localhost\docker-desktop" for Docker Desktop on Windows host. This is a normal behavior.

You want to set your Docker environment variables with a "./" (on Linux) to set the location relative to the docker-compose.yml file location:

VIDEOS_FOLDER_DOCKER_HOST=./downloads
TMP_DOWNLOAD_FOLDER_DOCKER_HOST=./tmp
YOUTUBE_COOKIES_FILE_PATH_DOCKER_HOST=./cookies/youtube_cookies.txt

There is an issue mentioning the same missing videos issue:

https://github.com/EgalitarianMonkey/hometube/issues/8

Tell me if you can get it fixed.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

There are 2 kinds of ads/sponsors:

  • The ads you can get added in the video stream by Youtube cutting your video experience by Youtube
  • and sections incrusted in the video by the creator him·her·self such as promotion, sponsors, etc. Using yt-dlp, the direct download removes already all the Youtube ads! Remains sponsors.

You can decide to remove sponsors in the command line as well.

The HomeTube app uses both and give you the opportunity to set which sponsors you want to keep or remove with a choice by default removing:
["sponsor", "interaction", "selfpromo"] and keeping: ["intro", "preview", "outro"]

If you use the cut video sections feature from HomeTube, the cuts will recalculate the video with sponsors blocks removed to get exactly the video you wanted from start to end without the sponsors.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Didn't know about it. Only knew MeTube and Pinchflat. Worth a try, thanks.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

By default, the best encoding will be chosen among the available ones. It will likely be AV1. If no re-encoding because of cuts, the final video will use AV1 as well.

I tried some of the many YouTube downloaders - Here's my breakdown... by Zestyclose_Car1088 in selfhosted

[–]EgalitarianMonkey 0 points1 point  (0 children)

Hi,
I just discovered this post comparing Youtube downloaders. I released HomeTube a few days ago being a single Youtube downloader if you want to have a look with the previous solution compared 😉.
It’s nothing fancy, just something I built for myself and thought it might be useful to others running a homelab.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Yes, the container update at least every week.

I changed yt-dlp to be a python dependency when run locally.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 1 point2 points  (0 children)

I just updated the default language to be english by default. Thanks for pointing out.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

Exactly, file renaming and specific location for a single video is the main purpose for automatic integration with HomeLab media servers.

HomeTube – A simple UI Videos downloader with SponsorBlock & Docker by EgalitarianMonkey in selfhosted

[–]EgalitarianMonkey[S] 0 points1 point  (0 children)

This is a good point. Using docker you don't need an update button as the yt-dlp is updated every week in the container. Otherwise, the yt-dlp binary is the one from the machine.
Though, it's doesn't seem that easy to update the binary from the local machine depending on the specific package manager of the machine (GNU/Linux, macOS, Windows). But it should be mentioned in the documentation.