-
Notifications
You must be signed in to change notification settings - Fork 46
Anyone interested in a better Golang rewrite #90
Comments
I think there is a need to define use cases as a first thing. |
I think all that regular people want is some easy way to use the program without the need of installing python or any needed garbage. The current implementation does not even work on non-linux system since the people that made the latest changes thought only about their needs or just didn't know what they were doing. Golang project can be built for any system to be used easily and there wouldn't be a need for any custom steps for regular users. |
Yeah but an UlozTo downloader is really a small project and I don't see any problem with this
I know a lot of different languages and I want to learn Go. It has the capacity to build great things like Rust but is easy to write like Python
Honestly I didn't think much about this. My idea was to build CLI (I spend most of my life in terminal :D) and when the code becomes more stable I would probably build WebUI around the core library (not Electron, fuck chromium)
About this. I would much prefer having the core library only implement the low-level API I wrote about earlier in the first post. This could allow for example streaming videos from UlozTo to the WebUI without storing any data. I think creating a separate project with high-level API could be better fit than implementing this into the core library.
This is why I think Go is much better fit than Python. I did not manage to compile TensorFlow Lite into a static library, the docs specify only how to compile to shared one, but having a folder for the program with shared library in it is much end user friendlier than having to manage Python dependencies. (On Windows something like install wizard can extract everything into Program Files and that's it) Also as I can't think of a better solution than splitting the work into multiple "workers" if you have better idea let me know (this is the one thing in this project I am most unsure of). From my point of view this should allow seeking videos when streaming them. If user skips to any unbuffered part the context for the workers gets cancelled and they can be instantly reused for buffering the new part. SummaryThe core library should provide:
High-level library: (idk about the implementation, also this could be part of the core library)
|
@vfosnar Any progress? |
I've been lately working on a Golang rewrite (got TensorFlow Lite captcha breaker working). In the process I discovered that the current state of this project is not so great. My current thoughts are:
Make the rewrite more like a library -> split UI and the downloader, thus create a
core
project (library) anddownloader
project (CLI) with all the TUI and stuff, possibly giving a chance for GUI in the futureMake a stable API for embedding the library
Build the API in a way that it's capable of streaming the content (imagine real time video watching with seeking support)
With a really utopic mind, in the future we could embed IPFS into the
downloader
(CLI/GUI) project so it queries the IPFS first and after if it fails fallback to UlozTo. Maybe building an open alternative to UlozTo. This last step would require a central server, which is really not good, but much better than proprietary UlozTo.(FYI I have little experience so I would appreciate any feedback) In my mind I image the
core
library API something like this:Once again I would really appreciate any feedback. I am a student and I have a lot of free time and I am really excited about working on this.
The text was updated successfully, but these errors were encountered: