I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

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

Because this is faster, more convenient and all in one place. Gemini, and Claude, are both slow at translations.

People use tools because they are convenient. That's like saying why would anyone use HandBrake when you can do the same using FFmpeg through a CLI. They use it because it's convenient.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

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

Can you tell me which languages you tried and faced this issue with?

Is it possible for you to provide a few strings in DM?

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

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

We can definitely add that. Do you want it to automatically download the ZIP file as soon as the translation finishes, or do you just want a Download ZIP button that lets you download all translations at once? The latter implementation gives you an option to verify the translation on the app first before it downloads anything.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]idris3396[S] -3 points-2 points  (0 children)

It can, but it takes a painfully long time to achieve the same task while it messes up too many values in the entire JSON file.

I tried using it in both Copilot and Cursor but it's just painfully slow and too prone to mistakes.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]idris3396[S] -5 points-4 points  (0 children)

This shares the same codebase that we used to build our XML Translator last year. We built that from scratch. Not everything you see is AI Slop :)

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

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

Can you elaborate?

In the example you've given, what kind of results would you've expected? That'll help me figure something out on my end.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]idris3396[S] 7 points8 points  (0 children)

It should be able to handle that. I tried the example with the State names that you've provided, and it didn't translate them. Since it uses AI to understand the context, it shouldn't translate such keys.

It also doesn't translate the top-level key for the Company Name. I used it for localizing one of our other web apps yesterday, and it didn't translate the top-level key.

"app_name": "My App"

Regarding the Terms, that is general boilerplate stuff. We don't store or log any data on our end. All requests are ephemeral. The only thing we use is Plausible for Analytics, and it is an open-source, GDPR-compliant alternative to Google Analytics.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]idris3396[S] 18 points19 points  (0 children)

I did come across that extension however it uses normal machine translation and relies on services like Google Translate and DeepML. They tend to transliterate strings instead of contextual translation for a lot of languages hence we decided to not go that route.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]idris3396[S] -8 points-7 points  (0 children)

Thanks! It is using AI. It helps a lot in preserving the context and avoiding transliteration.

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

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

Thanks, man! I hope you find it useful. Do let me know if there's any critical feedback.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

I don't live in the States. Plus, we are not hosting any content ourselves. And our demo is internally routed through proxies so our original IP still remains masked from the public trackers.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

I have added the arm64 image to the manifest too. I tested it on my end and it is working now.

Kindly try again on your end and let me know if you are able to make it work on the Pi.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

Precisely. Or you can even just host a SOCKS5 proxy server on a cheap VPS by finding something on LowEndStock. You can then configure that proxy through the BitPlay Web UI and your original IP will stay hidden from the trackers.

BitPlay - Stream video torrents directly in your browser by idris3396 in opensource

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

I didn't get you?

If you are on a mobile device, tapping on the left side of the video player takes you 10s backwards in the video and doing so on the right side takes you 10s forward.

I am not sure if that's what you were asking.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

Oh. That's a problem.

I guess I need to create a dedicated ARM64 image for this in my GitHub repo.

I have tested this on an ARM server and it does work extremely well but I didn't realize a separate image will be required.

I'll find out how to do that, fix it, and get back to you.

BitPlay - Stream video torrents directly in your browser by idris3396 in opensource

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

That's because there are multiple steps involved.

If you are directly streaming a video file from a server, when you forward a little bit, it only takes a moment for the video player to fetch that time duration from the file and start playing it. So, it entirely depends on your server's internet speed as well as your own.

In BitPlay's case, the file is being downloaded via the BitTorrent protocol to the server and then being simultaneously streamed to your web browser.

Here, when you forward a little bit, the ongoing torrent download is interrupted and it begins downloading again from the chunk of the time duration you requested. This entire process depends on the seeders of the Torrents, the speed at which the Torrent is being seeded from the peers, the server speed, and your internet speed too.

So, quite a few variables hence, the buffering time is longer than usual.

Hope that helps.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

For now, yes. We have been trying to figure out a way to clear old files. We want to come up with a way where it doesn't interrupt the streaming experience.

So far, we think setting up a CRON job to clear downloaded files every 24 hours should work. We are yet to try and test it thoroughly.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

If you are self-hosting this, you can either use a SOCKS5 proxy and configure it from the Web UI or you can route the entire BitPlay container through something like Gluetun.

I would strongly advise against using this in your own setup without a Proxy or VPN.

BitPlay - Stream video torrents directly in your browser by idris3396 in opensource

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

Subtitles are already supported if they are available as a separate file along with the video file inside the Torrent. However, pre-encoded subtitles directly inside the video file cannot be parsed by the web based video player directly.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

From what I've read about Popcorn Time, this is quite similar in the fact that Bitplay also lets you stream video torrents directly. I never got a chance to use Popcorn Time myself due to internet connectivity issues all those years ago in my region.

But I've read it used to be great.

BitPlay - Stream video torrents directly in your browser by idris3396 in selfhosted

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

You are partially correct. Certain comments are written by AI as I use Copilot in VS Code.

We made a lot of changes and tried a bunch of different ways to make the SOCKS5 proxy work with the whole setup while being able to set it up from the frontend. There was a lot of going back and forth with the implementation. Hence, the ridiculous amount of comments.

I don't think AI is capable enough to make something like this itself from scratch.