Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local client #195

Open
ArjixWasTaken opened this issue Sep 3, 2023 · 12 comments
Open

Local client #195

ArjixWasTaken opened this issue Sep 3, 2023 · 12 comments

Comments

@ArjixWasTaken
Copy link

ArjixWasTaken commented Sep 3, 2023

Hey there Snuffy!

I have been making a re-write of th-ch/youtube-music in TypeScript, but I don't really like electron, so I've been thinking of migrating to Tauri instead.

But, tauri has one major issue, it is not designed for loading remote websites.
It ain't easy to inject custom code into the site, heck it might even be impossible.

So I've been thinking, what if I did not use a remote website?
What if the client code was fully local, like an alternative frontend of youtube music?

And that's where I remembered that beatbump exists!
Would you be interested in porting your site to a local app, with me?

@snuffyDev
Copy link
Owner

It's way more than possible to hook tauri up to a remote website (https://github.com/DiscordTauri/discord-tauri, is a good example)

HOWEVER, I've been thinking of doing a port in a couple months or so (once Tauri mobile is more stable, since it'd be nice to run it natively on iOS or Android as well)

Have you tried out using the PWA? Personally it's how I use Beatbump on my iPhone and it's honestly not a bad experience for the time being. Same with on my laptop (however it requires Chrome/Edge/others or Safari since afaict Firefox removed PWAs?)

@ArjixWasTaken
Copy link
Author

ArjixWasTaken commented Sep 3, 2023

It is possible to inject custom code with tauri, that is true, but the example you linked does not do that.

No custom code is injected after discord is loaded.

And no code injected before the discord load would be meaningful, since a full page reload is done.

@snuffyDev
Copy link
Owner

Ahhh, true, one sec my bad. Looking for an old video of mine, then. Since i cloned it and tried to do custom code injection and it worked

@ArjixWasTaken
Copy link
Author

Dorion seems like a better example of injecting code into a remote site with tauri.

https://github.com/SpikeHD/Dorion

@ArjixWasTaken
Copy link
Author

Their solution doesn't look very elegant though.

From the looks of it they just blindly evaluate js.

@snuffyDev
Copy link
Owner

Yeah, good point I can't find my old project or any videos. However, you are correct it's not really that elegant of a solution. While I look into exactly how to handle migrating or porting the backend API does a PWA work? The biggest challenge is extracting or porting the entire back into either rust or a more modular, you know, mono repo, sort of set up, especially since the back and heavily is integrated with svelte kit as well as the project itself so it would be quite a big guess task in order to pull the API out

@ArjixWasTaken
Copy link
Author

ArjixWasTaken commented Sep 3, 2023

Porting the entire backend to rust sounds like a fun project.

If you can generate an OpenAPI spec then I can work on the rust port in my free time.

@snuffyDev
Copy link
Owner

I've been considering just yanking the API out into a package, using this it may be easier to port the API to a Sidecar server, however, it still would be essentially a full-blown reimplementation of the API but it's definitely something that's doable, but at that point, it's kind of a question of why not just rewrite it and rust?

@snuffyDev
Copy link
Owner

While it would be fun, it definitely wouldn't be fun to fully type it because of how much do YouTube music, internal API changes and how many different keys objects, etc. exist for it

@snuffyDev
Copy link
Owner

But I would definitely be up for the challenge

@snuffyDev
Copy link
Owner

If you have Twitter, you can DM me on Twitter and we can see about doing a collaboration of sorts. If you don't have Twitter then just drop your discord and I can hit you up on there.

@ArjixWasTaken
Copy link
Author

My discord can be found on my GitHub profile!

Otherwise you can use my username: arjixwastaken

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants