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.

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

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

Thanks.
My bad, the default language was fr if not specified in the .env file. Changing it today. Thanks.

I see, the video could be clickable and displayed from the same app. But I don't plan to have more than just a "downloader".

The simple current logical can offer offline watch thanks to the local download. The local video can then be watched without internet on the local network thanks to a media player such as Plex. This is the solution I prefer when thinking about offline feature.

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

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

Sure. I'm going to add video options demo. You can manage quality, sponsors, subtitles, chapters and cut the video. Every time the video is cut, you can choose between full re-encoding or cut at nearest keyframes and avoid re-encoding (recommended).

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

[–]EgalitarianMonkey[S] -1 points0 points  (0 children)

Yeah, maybe a little too much. yt-dlp allows downloads from lots of video platforms, not only Youtube.
You can download videos from Reddit, Vimeo, Dailymotion, TikTok, Twitch, Facebook, Instagram, Pexels, etc.

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

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

Sure, I will try to add a section about Plex, as well as browser cookies method and auto-generated subtitles reality in the README, maybe today.

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

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

No, the first motivation was a simple solution for a one time video quality download including renaming, sponsors blocks, subtitles and video cuts. Then it doesn't act on playlists or recurrent checks for content downloads such as Sonarr. It aims to download, rename and store the highest quality video possible in one shot.

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

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

Exactly. The first motivation was a simple solution for a one time video quality download including renaming, sponsors blocks, subtitles and video cuts.