Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I built my own personal version where it runs in the background and automatically downloads stuff I like (I highly curate my likes) or send to select playlists. Too often I go through my favorites and see deleted videos so I just cooked up something one weekend. I have an entire hard drive dedicated as an offline archive where I can playback at anytime, search the library and it even alerts me if any video or audio I saved was deleted (I have quite some rare pulled videos). It will also grab the subtitles/transcript if available, description and top 100 comments (if a tutorial etc).

https://i.imgur.com/yxlRTI8.png



view as:

Do you really need Electron for this? I would implement what you describe in a headless Python (which is native to YouTube-dl and where YouTube-dl itself is available as a library) script.

I just use a shell script.

For a frontend dev, it makes sense to use Electron for personal projects of this variety. You don’t need to learn another language, or even another set of tools, you just build the whole thing in-browser and get a shareable UI to boot.

Personally, I’m partial to the command line and to a lesser extent, TUIs, but I certainly understand building with whatever is most convenient and/or fun to the dev…especially on a personal project!


Full stack dev here, I work with c++ and other langs often and do work with web tech for clients, dcc scripts and plugins etc. This took me a few hours with electron because it's just js and I don't want a crummy cli, tui or generic gui look, I want something with batteries included that's easy to style, quick to add new functionality if needed (npm) and looks GOOD besides this isn't for anyone but me.

Do you really need Python for this? I would implement what you describe in SwiftUI (which is native to my OS) code.

I don’t understand what you care for other people’s personal projects. Not everyone knows your favorite language.


Python is not my favorite language. It's a basic language youtube-dl itself is implemented in. I would say bash but bash is hard. Even if I were an excavator driver I would still use an ordinary shovel for a personal project of planting flowers in my garden.

You're constraining yourself to a language for no good reason. With your logic, we'd all be writing C. Communicating with ytdl from any other language via a library or even a process call is rather trivial so just it being written in python is already a non reason.

I chose js a la electron because I needed a nice gui I could style and add user friendly interactions with minimal work to amongst several other reasons, the aim was to have a nice way to browse my archive and track what goes in, not create new work. If I just wanted videos I could easily have done this with a script, a browser extension or any of the zillion ytdl variants available. By just scaffolding a new project I had already met a lot of requirements, easily embeddable iframes, no external video player, instant search (fusejs) and the list goes on. This is also my first electron project and first time using it so go figure, heh.

Also funnily enough the first quick draft of this was in python using qt and lived in my taskbar tray which served a simple html page and ran in the background but it wasn't fun to use and required a lot more work rather than just mindlessly pulling down packages to use in a fun side project.


I was playing around with something similar a while back.

https://github.com/bluedaze/ytADL


Neat! Seeing this I'm considering making a similar project that takes a search and drops the preview pictures. No post-video-watching suggest + no 1 minute video shorts + no clickbaity preview pictures + setting a watch timer or something like that might get me back on youtube.

You can try this addon (Unhook: Remove YouTube Recommended Videos Comments) as it does just that and more, my web yt is clean, I don't even have a feed thanks to this.

Chrome - https://chrome.google.com/webstore/detail/unhook-remove-yout...

FF - https://addons.mozilla.org/en-US/firefox/addon/youtube-recom...


This is exactly what I have been looking for, any chance you could make this public?

Unfortunately no immediate plans to do so. It was a quick weekend project to scratch an itch.

It's comments like this that make me realize that not everyone has an utilitarian mindset. I'd be happy to share my weekend project if someone expressed interest, even if it wasn't perfect. Just don't expect me to support it.

Support is one and you can't blindly assume that it's in a shareable format from a quick braindump sprint. Lots of hardcoded personal stuff, wonky incomplete features, mixed absolute and relative paths etc. It was NEVER intended to be shared and would require time to cleanup to even distribute a binary. It also works based on how I use youtube, it's not a general purpose tool so it's super opinionated.

Yeah, I think with the "share everything" mentality and everyone building everything in reusable jS snippets (thus, the huge repositories of code and duplicated projects); the general share of people forget that some people still code...for themself. And that those projects don't necessarily have a simple "settings.toml" to edit for paths or settings; nor the tons of effort that goes into making such a project configurable in the first place.

And there's nothing wrong with that. Like the dozens of PoC codebases I have lying around my PC that no one will (or needs to) ever see.


You don't need code for this... if you pass youtube-dl a playlist URL instead of a video URL, it will download all (public) videos from the playlist. Write a cron job for it and you're done.

Yeah, I do this with the channels I like and save them directly to my DLNA server at home using a systemd timer (i.e. cron job).

I patreon the channels, and an added bonus is no ads. I don't care too much about deleted videos, and when YouTube Premium Lite rolls out to the USA I'll pay for that (I don't listen to music so YouTube Music features are wasted money for me)


You might enjoy youtube-local: https://github.com/user234683/youtube-local

Could you share the code for this? It looks great!

I built my own to browse large video collections: Video Hub App https://videohubapp.com/

MIT open source: https://github.com/whyboris/Video-Hub-App


No plans to share yet and it's nothing special, your version seems way more advanced. I just wanted a bit of control over my UI which I styled with tailwind, this is also an older screenshot, looks a lot better now.

Legal | privacy