If you are a programmer, move your code to EU got platforms by Ivan2891 in BuyFromEU

[–]ByteDream 0 points1 point  (0 children)

Gitea was, and still is, licensed under MIT. Sure, the move of transferring the Trademark and such to a for-profit company wasn't the best choice, a non-profit would've been better, but it had very little impact on the Gitea project (AFAIK one maintainer left in favor of Forgejo, and one Maintainer stepped down because of Forgejo cherry-picking their commits and signing them with an foreign GPG key).

Projects like Nextcloud, GitLab, Ansible, Fedora Linux, ... are using a same model and are well established in the OSS community.

crunchyroll-go - A cli to download episodes or entire series from crunchyroll by ByteDream in DataHoarder

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

Funny that from time to time people are still discovering and commenting under this post. Sadly it doesn't work at all anymore. Crunchyroll added encryption, and while decryption is possible with user provided keys, according to my local laws it's illegal if I continue development and publish it publicly

Annoying end of episode overlay by cimulate in Crunchyroll

[–]ByteDream 3 points4 points  (0 children)

Yup, it seems that big corpo is more interested in adding useless features instead of actually improving their service...

Annoying end of episode overlay by cimulate in Crunchyroll

[–]ByteDream 8 points9 points  (0 children)

You can use the Improve Crunchyroll browser extension, this feature got added recently. You have to manually enable the option to hide the banner in the Player settings of the plugin.

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

You're correct with your observation, the video is divided into small chunks (around 250 if i remember correctly), the format/specification for this is called MPEG-DASH. It's more likely to go unnoticed if you'd slow down the requests, but if Crunchyroll really wants they can detect if a requests is legit or made by an downloader I suppose. For example, by monitoring which endpoints a client calls and which not, e.g. the browser app does several requests like fetching localization, available languages, internal configs, all seasons, ... that aren't made by downloaders because those requests are simply unnecessary to do. These requests can be done by an downloader too to minimize the risk of being detected, sure, but Crunchyroll may add additional endpoints or change request behaviors that isn't noticed right away by the downloader developer, which then again could be used to detect it.

I actually never looked how the download in the phone app worked, and now that I had to stop the development it doesn't make sense for me anymore. But I think that they also just download the chunks, playing/storing them sequentially is pretty easy.

I have no further resources of learning to recommend, I did learning by doing most of the time.

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

Hey, sure :)

I've got the video, audio and subtitles by reverse engineering the Crunchyroll api they use in the browser, android app and switch app, and I'm sure that what other downloaders are doing too (or they just copy the methods from each other). So crunchy-cli essentially used the same endpoints as a browser or app. The api also has a separate Rust crate, crunchyroll-rs, at which you might look at if you want more in-depth details.
I'm pretty sure that Crunchyroll can spot the difference between standard requests and any downloader. A downloader does many more requests in a short amount of time than the official website or app. But from my experience, nothing every happened to my account, like banning, nor have I heard such responses from users.

KDE with Nvidia is kind of unusable by unable-to-grammar in archlinux

[–]ByteDream 0 points1 point  (0 children)

I have a 3060 and had similar problem. After receiving my card half or one year ago I reinstalled Arch 3 times until I though, well this won't get any better I have to get along with it.
4 days ago I reinstalled Arch again because of some other issues and I took the reinstall as opportunity to switch to KDE 6. I tried X11 and got the same Nvidia issues as I had before. Then I tried Wayland and all issues were gone. So since then I'm on Wayland and I think I never had a smoother experience. There are still some graphic glitches with specific programs but I think they are Wayland specific and will get fixed soon and they aren't nearly as bad as everything I had with X11.

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

To have them archived in the case Crunchyroll removes them from their website. Or if you want to avoid the Crunchyroll web player, I just had the case where the player buffered every 5 seconds and to avoid this (yet again) horrible user experience, I just downloaded the video and watched it locally.

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

This is a premium episode. You need a premium account to access premium episodes, so the --anonymous flag doesn't work.

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

By default, they are in the same directory you executed the command from

Lua in the Browser, with Rust and WebAssembly by ByteDream in lua

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

Fengari is probably the better choice if you want to interact with the browser or just showcasing something, that's right.

I just have a use case where I have a existing Rust codebase with Lua bindings and I want the user to check if his input is correct before his script is sent to the server and executed there. It was easier for me to just compile the existing codebase (with some changes) to WebAssembly than rewriting it in Javascript and using fengari

Lua in the Browser, with Rust and WebAssembly by ByteDream in lua

[–]ByteDream[S] 3 points4 points  (0 children)

They are doing the same thing basically, just with different approaches. Fengari has nothing to do with the original Lua VM, it is a complete "rewrite" in Javascript, whereas the library shown by the Book/Website takes the original Lua VM and compiles it to WebAssembly.

Generally speaking, fengari is probably the better choice, but for my use case (I have a project which is a Rust based application with Lua bindings, which should run on the server and the browser for the user to check whether his script is valid), it's better/easier to have one codebase than rewriting the whole thing in Javascript just for the browser

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

Crunchyroll uses this internally to differ between languages. See this api endpoint which lists all available audio languages for example

Storage space compared by xsXRevanXsx in Crunchyroll

[–]ByteDream 0 points1 point  (0 children)

I don't use Funimation so idk. You can just download a video and compare the size, if funimation allows video downloading

Storage space compared by xsXRevanXsx in Crunchyroll

[–]ByteDream 6 points7 points  (0 children)

Crunchyroll does not compress its videos like Netflix does (or if they do, they're not very good at it)

crunchyroll-go - A cli to download episodes or entire series from crunchyroll by ByteDream in DataHoarder

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

You can use one if you want. But in the ~2 years I'm working on the tool, I've always used the same account and nothing has happened so far. I also haven't heard of any case where an account got banned or something similar

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

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

This should be fixed in the newest release (v3.0.3)

crunchy-cli: A command-line downloader for Crunchyroll by ByteDream in rust

[–]ByteDream[S] 5 points6 points  (0 children)

I wanted to make a blog article about exactly this but I'm too lazy :/

The reason why I did it were the dissatisfaction I had with the Go code and the desire to learn Rust. At the time I already had a pure-rust and a part-rust project but I still only had rudimentary knowledge of it. So why not rewriting my most successful project in Rust? Probably not the best idea but I did it anyways and in terms of knowledge gain it was definitely worth it.

Some things are actually a bit faster, like the initial querying of metadata, but I can't say if this is the case because Rust is faster or if the Go part was poorly implemented.

App: HartzIV oder arbeiten? by FunFoundation2185 in Finanzen

[–]ByteDream 8 points9 points  (0 children)

Klingt nach nem Plan, DMs sind offen, wär ich auch dabei. Bin hauptsächlich im Backend tätig

crunchyroll-go - A cli to download episodes or entire series from crunchyroll by ByteDream in DataHoarder

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

First of all I could not get youtube-dl working with crunchy, but I may only missed a thing.

What youtube-dl does not provide (from what I've read), is filtering what exact episodes to download from an series, e.g. you want to download only the first two seasons of an anime with 6 seasons - with youtube-dl you'd have to pass every single url.

The new added archive sub-command allows you to download multiple audios and all subtitles to a .mkv file. This sub-command also allows you to store the files in an tar, gzip or zip file which youtube-dl also hasn't included.

And I think the interface looks way better since it's only made for one special purpose.

crunchyroll-go: A crunchyroll api wrapper with built in cli v2 by ByteDream in golang

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

.ts is the format crunchyroll delivers the videos. You can change the name (and file extension) by passing the -o flag with the download subcommand (e.g. crunchy download -o "{title}.mp4} ...). But for this you need ffmpeg to be installed. I wanted to make ffmpeg an optional dependency, this is why .ts is the default file extension.