Live data from Hacker News

Youtube.js – full-featured wrapper around YouTube's private API

github.com

51–60 of 113 posts

Re: Youtube.js – full-featured wrapper around YouTube's private API

#51
post #14

Cool project but I wonder if the name will catch flak from the lawyers. Trademarks and all that. At they very least a big "This is not affiliated with Google/Youtube" seems like a wise precaution.

They should rename it to Innertube.js (which is the official name of the private API, and as far as I know not trademarked not used in any user-facing resources).

Valve.js would also work, since it allows access to the innertube.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#52

I've been wanting to use the Youtube Music API to automate some personal chores (like building/cleaning playlists, etc) and was very discouraged. I actually switched to Spotify (trial) partially over it but there were a couple of other (off-topic) reasons I didn't want to stay with Spotify. This looks like a wonderful tool! And it's not in Python :-D (sorry python people). Like others I'm a little concerned about bre…

Ths drove me nuts because Google Music had an actual public API. The service was deprecated in favor of YT Music, which has less features and no equivalent API.

That deprecation was a catalyst to move my music collection elsewhere, so it's not threatened by the whims of Google anymore.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#53

If you’re YouTube or any site, and want to stop these sort of wrappers - what’s the easiest way to do so without breaking your own site? I find this task to be an interesting engineering problem. A related question is if there’s an unspoofable way to detect a client.

Every few requests put up a catchpa. That is how google did it for their search https://support.google.com/websearch/answer/86640?hl=en

Wouldn't there be all sorts of human detection that they could do, similar to how game cheat engines work? A human is going to move the mouse across elements, drag, poke the screen, be slow, etc, and all in fairly predictable ways. Some API calls almost certainly require human interaction, where some interaction graph could be feed as a key to the API. It's cat and mouse, but at some point the mouse is going to get tired.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#54

If you’re YouTube or any site, and want to stop these sort of wrappers - what’s the easiest way to do so without breaking your own site? I find this task to be an interesting engineering problem. A related question is if there’s an unspoofable way to detect a client.

The only bulletproof way is to change your business model to make these useless, irrelevant or no longer threatening. Yours and the user’s incentives should be aligned. If you serve content, put it behind a paywall and rate-limit based on the maximum amount a human can reasonably consume and stop caring whether the user uses your own client or something like this - after all you’re getting paid either way. The only b…

What about something like Craigslist? I would rather that not be behind a paywall. I would think they would also enjoy not having their site scraped and re-created.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#55

I've been wanting to use the Youtube Music API to automate some personal chores (like building/cleaning playlists, etc) and was very discouraged. I actually switched to Spotify (trial) partially over it but there were a couple of other (off-topic) reasons I didn't want to stay with Spotify. This looks like a wonderful tool! And it's not in Python :-D (sorry python people). Like others I'm a little concerned about bre…

Ths drove me nuts because Google Music had an actual public API. The service was deprecated in favor of YT Music, which has less features and no equivalent API. That deprecation was a catalyst to move my music collection elsewhere, so it's not threatened by the whims of Google anymore.

Makes a ton of sense. I almost bailed for the same reason. It was such a ridiculous downgrade. I just barely (today actually) got back a super important feature to me that Play Music had years ago: Save a queue as a playlist. If this private API gets a C&D or gets aggressively broken, I absolutely will bail too.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#56
post #40
post #38

Earlier quoted context omitted.

They do and you can install extensions to see the dislike count though sadly they slow down my experience every time Ive tried them (at least on Windows Chrome).

You cannot longer see the true like/dislike ratio. They removed the dislike count even from the API since December 13th [0]. The extension does some guesswork to calculate that for you [1]. This library also doesn't give you the dislikes anymore (just tested it). [0] https://support.google.com/youtube/thread/134791097/update-t... [1] https://github.com/Anarios/return-youtube-dislike#what-it-do...

Ah I wasn't aware. For what is worth the gueswork does seem accurate enough to be useful on the videos I tested last time.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#57

If you’re YouTube or any site, and want to stop these sort of wrappers - what’s the easiest way to do so without breaking your own site? I find this task to be an interesting engineering problem. A related question is if there’s an unspoofable way to detect a client.

Firebase app check does this and I wouldn’t be surprised if YouTube adopts it eventually.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#58

The reason I stopped integrating any API based system (FB, Twitter, etc...) into my code bases for services I don't pay for (or my customers) is because they all changed willy-nilly and broke on a regular basis. This is more likely to break (be broken by google) than an official API, and those are bad enough. (hard pass on even trying this out, especially if it's good/nice I'll want to use it and kick myself later fo…

Unfortunately it’s rarely that these kind of decisions are based on technical merit, but instead because they’re part of the business proposition, or requested by other parts of the business (sales/marketing). Other than that, I fully agree that you should try to minimize your dependence on them, it’s not good a good position to be in; what’s in the best interest for YouTube today may not be the case in one year.

In my experience, private APIs are expected to be refactored, and you should not depend on them. I don't think sales/marketing are involved at all. For a public API, sure, but don't expect private, undocumented APIs not to break you, in fact, you SHOULD expect them to change, especially in any codebase that is actively being maintained.

Re: Youtube.js – full-featured wrapper around YouTube's private API

#60
post #14

Cool project but I wonder if the name will catch flak from the lawyers. Trademarks and all that. At they very least a big "This is not affiliated with Google/Youtube" seems like a wise precaution.

They should immediately rename it so as not to be caught the way YouTube Vanced was. A disclaimer is not a sufficient response to trademark issues.

Or do this:

1. Release it as youtube.js for the name recognition

2. Wait for the certified letter

3. Announce you're renaming your project and get another 24 hours of exposure in the news

This guy is playing the game.

Post reply on HN