Blocked public API use for goodtube4u #332

Closed
opened 2025-11-09 09:46:32 -06:00 by GiteaMirror · 4 comments
Owner

Originally created by @goodtube4u on GitHub (Jun 30, 2024).

Hey man,

I'm the creator of a little Youtube adblock thing called "GoodTube". Details here:
https://github.com/goodtube4u/goodtube

Until earlier today - this was setup to connect to your public API (api.cobalt.tools) and using it to allow users to download videos.

However - it appears that yesterday, you swapped the functionality to instead;

  • Redirect users to your website.
  • Slander this plugin as untrustworthy / for profit.

I'd say that's a bit unfair, as this plugin is actually 100% open source and not for profit (no donations either).
It's basically a community focused project...

Not sure where to go from here?

  • I am more than happy to credit you on Github, etc.
  • I am also happy to include in the interface itself a link to cobalt.tools. Maybe in the downloads menu it could say "Downloads by cobalt.tools" or something like that?

The terms are your own - as it's your product. Just thought I'd hit you up before looking for an alternative.

Cheers.

Originally created by @goodtube4u on GitHub (Jun 30, 2024). Hey man, I'm the creator of a little Youtube adblock thing called "GoodTube". Details here: https://github.com/goodtube4u/goodtube Until earlier today - this was setup to connect to your public API (api.cobalt.tools) and using it to allow users to download videos. However - it appears that yesterday, you swapped the functionality to instead; - Redirect users to your website. - Slander this plugin as untrustworthy / for profit. I'd say that's a bit unfair, as this plugin is actually 100% open source and not for profit (no donations either). It's basically a community focused project... Not sure where to go from here? - I am more than happy to credit you on Github, etc. - I am also happy to include in the interface itself a link to cobalt.tools. Maybe in the downloads menu it could say "Downloads by cobalt.tools" or something like that? The terms are your own - as it's your product. Just thought I'd hit you up before looking for an alternative. Cheers.
GiteaMirror added the main instance issue label 2025-11-09 09:46:32 -06:00
Author
Owner

@lostdusty commented on GitHub (Jun 30, 2024):

what error are you getting? is it being redirected to blocked.cobalt.tools?

@lostdusty commented on GitHub (Jun 30, 2024): what error are you getting? is it being redirected to blocked.cobalt.tools?
Author
Owner

@goodtube4u commented on GitHub (Jun 30, 2024):

Hey thanks for the reply.

Uh yep, that's being returned when I direct a user to the stream URL that the API returns.

Was working fine, then suddenly this problem so I don't think it's my implementation.

Do you think the issue is that requests originating from youtube.com are being blocked by the API / CORS headers or similar?

@goodtube4u commented on GitHub (Jun 30, 2024): Hey thanks for the reply. Uh yep, that's being returned when I direct a user to the stream URL that the API returns. Was working fine, then suddenly this problem so I don't think it's my implementation. Do you think the issue is that requests originating from youtube.com are being blocked by the API / CORS headers or similar?
Author
Owner

@goodtube4u commented on GitHub (Jun 30, 2024):

Further on this, I get the stream URL back from the following endpoint:
https://api.cobalt.tools/api/json/

However, from there I try to open it for the user using:
window.open('THE STREAM URL THAT WAS RETURNED', '_self');

That redirects the user to blocked.cobalt.tools

Other times in the script, I also try to fetch the source of the stream URL using Javascript's fetch API (in order to put it in a blob object so I can then rename it for them before downloading it). This is also failing.

Any ideas?

@goodtube4u commented on GitHub (Jun 30, 2024): Further on this, I get the stream URL back from the following endpoint: https://api.cobalt.tools/api/json/ However, from there I try to open it for the user using: `window.open('THE STREAM URL THAT WAS RETURNED', '_self');` That redirects the user to blocked.cobalt.tools Other times in the script, I also try to fetch the source of the stream URL using Javascript's fetch API (in order to put it in a blob object so I can then rename it for them before downloading it). This is also failing. Any ideas?
Author
Owner

@wukko commented on GitHub (Jun 30, 2024):

we've blocked access to our api from your extension because we don't agree with your ethics:

  • you mislead users to believe that you block ads, when in reality you swap out the player for invidious one.

  • you use invidious instances without mentioning them (or even the fact that you use them at all) anywhere:
    image

  • you tried to obfuscate the old cobalt api endpoint to hide the fact that you're using it:
    image
    image

  • you've lied in this issue about using the new api endpoint.

  • you're now calling your users to "send angry messages" to us:
    image

we will not unblock your extension, but you can host a cobalt instance yourself and use it instead. you have to mention that you rely on cobalt and invidious with links to respective github repos.

we reserve full rights to take any actions needed to stop unfair use of our free api.

i have archived the user script with obfuscation of our old api endpoint & call for your users to send us "angry messages": https://web.archive.org/web/20240630075645/https://github.com/goodtube4u/goodtube/raw/main/goodtube.user.js

@wukko commented on GitHub (Jun 30, 2024): we've blocked access to our api from your extension because we don't agree with your ethics: - you mislead users to believe that you block ads, when in reality you swap out the player for invidious one. - you use invidious instances without mentioning them (or even the fact that you use them at all) anywhere: <img width="451" alt="image" src="https://github.com/imputnet/cobalt/assets/71202418/683f8995-abe5-484f-bbe9-706bd57b1c52"> - you [tried to obfuscate the old cobalt api endpoint](https://github.com/goodtube4u/goodtube/blob/bd1d760d2d06db8f5b55626f73b7c26128c0b321/goodtube.user.js#L4927) to hide the fact that you're using it: <img width="1145" alt="image" src="https://github.com/imputnet/cobalt/assets/71202418/d58274b5-057c-4641-ad51-0499a3e83a45"> <img width="633" alt="image" src="https://github.com/imputnet/cobalt/assets/71202418/f48df859-0dfc-45a8-b1d9-e89b38da252e"> - you've lied in this issue about using the new api endpoint. - you're now calling your users to ["send angry messages"](https://github.com/goodtube4u/goodtube/blob/bd1d760d2d06db8f5b55626f73b7c26128c0b321/goodtube.user.js#L4854) to us: <img width="1362" alt="image" src="https://github.com/imputnet/cobalt/assets/71202418/d921bf3b-85f9-4ad0-b007-a5e826489b45"> we will not unblock your extension, but you can [host a cobalt instance yourself](https://github.com/imputnet/cobalt/blob/current/docs/run-an-instance.md) and use it instead. you have to mention that you rely on cobalt and invidious with links to respective github repos. we reserve full rights to take any actions needed to stop unfair use of our free api. i have archived the user script with obfuscation of our old api endpoint & call for your users to send us "angry messages": https://web.archive.org/web/20240630075645/https://github.com/goodtube4u/goodtube/raw/main/goodtube.user.js
Sign in to join this conversation.