
Because RSS feeds are not a thing that you should want.
Youtube: every day, making everything worse, in every way.
I don't know if anyone but me is using my youtubefeed program, but if you are, and you had Youtube users in your feeds list, you'll need to upgrade, and cope with the horrible fact that it now has a dependency on youtube-api.pl. (You'll need the latest version of that, as well as of youtubedown.)
But using youtube-api.pl at all means that first you have to jump through a bunch of hideous hoops to generate authentication keys and session IDs, pretty much ensuring that it's far too much of a pain in the ass for anyone to actually use it. Are you using it? Let me know.
Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.
We did some feedly back end work so that RSS feeds are transparently migrated in the background to v3 APIs. This way as a user, you continue to get yours feeds.
They have a new URL for RSS feeds that don't require authentication.
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNELID
https://www.youtube.com/feeds/videos.xml?user=USERNAME
They aren't quite the same, and may have some rate limiting, but might be an option for you.
Oh thank god, if it works; I gotta update like 20 fucking feeds today.
Is that actually documented anywhere?
It seems to only work on uploads, not favorites.
I do not know if it is explicitly documented anywhere. If you download your OPML file (with http://youtube.com/subscription_manager?action_takeout=1), this is the style of links you will find within.
The only brief mention I see in the docs is regarding the push notifications in the v3 API (https://developers.google.com/youtube/v3/guides/push_notifications).
"Hooray."
Well, I've updated youtubefeed to use that style, for as long as it lasts this time.
Till v4. It’s almost guaranteed they are working on a better way for you to implement your programs existing functionality :/
Since it is completely undocumented, your faith that it will stick around until they invent v4 is charmingly quaint.
Fair call, what can I say - I'm still young and naive :)
It appears to be an official thing per youtube.com/devicesupport, for what little that's worth.
FWIW, youtube advertises the channel version in the metadata, as you can see by, eg, using the RSS button in Safari.
great, that reduces the problem from "by eris! fuck those idiots!" to "meh' more work to do because they were to stupid"
having links to feeds in the page-header would be by far to efficient and standard-conform. Then again google doesn't need to do any optimisation to make it's content findable/consumeable. It's google, so that's a given anyway. -.-
Thanks a lot ! A few hours ago I noticed that the http://gdata.youtube.com/feeds/api/users/CHANNELID/uploads trick wasn't working anymore. I use a lots of RSS feeds and I don't even use my google account to follow my favorite youtube channels. 1 hour of google searching/etc, didn't find anything to fix it... Thanks, really.
Same trick for playlist https://www.youtube.com/feeds/videos.xml?playlist_id=PLAYLISTID
Awesome.
Yep, they broke the YouTube feeds in my feed reader. It's exasperating.
It's fucking google. Making the world a worse place, one fucked up feature at a time. I cannot for the life of me figure out why anyone actively defends them these days.
(Not that any of the other tech giants are any better.)
The newsblur users have been discussing this for the last few days, one of them made this: http://morning-retreat-1911.herokuapp.com/
Discussion here:
https://getsatisfaction.com/newsblur/topics/youtube-eliminating-support-for-rss-atom
My RSS provider, Inoreader had this covered
http://blog.inoreader.com/2015/04/youtube-api-v3-is-live-dont-worry-your.html
I am increasingly convinced that Youtube is deliberately making their UI as awful as possible.
By the way, I don't know if the Funker Vogt's new guys are nazis, but I know sure the author of this blog is an assole. Un trou du cul comme on dit en France
Exactly on schedule, v2 is fully gone.
Anyone know if there is a way to do search in v3 without authenticating? I heard a rumor that you could do some of that, just not get all the video's details. Also, anonymous search still works from a browser, of course.
Is there any way to get the extra information back such as the thumbnail and the author comments in the "show more" bit that the old one had?
I used the feed to include our Youtube videos on our website (and be able to search them using a keyword).
The new URL would be https://www.youtube.com/feeds/videos.xml?user=woltexnl
Problem that I encountered is that when I test it with a Youtube user with a lot of vidoes it only shows the last 15.
https://www.youtube.com/feeds/videos.xml?user=robberthardwell
Not a huge problem at the moment but it will be once we added the 16th video. Is there any way to add commands to show more or show the next 15?
With the old RSS you could give additional commands.
This gave the first 50.
http://gdata.youtube.com/feeds/base/users/robberthardwell/uploads?orderby=updated&v=2&client=ytapi-youtube-rss-redirect&alt=rss&start-index=1&max-results=50
This gaves the next 50:
http://gdata.youtube.com/feeds/base/users/robberthardwell/uploads?orderby=updated&v=2&client=ytapi-youtube-rss-redirect&alt=rss&start-index=51&max-results=50
I tried these additional comments to the new feed but they don't work. :(
Any alternative?
I'm using both v2 and v3 API together at the moment, but as long as some of the v2 calls are working, I will try to get it working again using pure v2 API.
My Uploads listing routine does 2 calls. The first against v3 API to get user id/channel id:
https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=username&key=your_api_key
And the second against the v2 API, getting access to the uploads playlist ("UU" + channel id/user id), which may be not up to date (usually a few minutes to hours behind). But this suppresses the "device not supported" video.
However, since its a playlist and has some restrictions in v2 API, you cannot access entries higher than 1000.
The playlist lister works as before, as it has not been partly or totally disabled and returns the usual feed:
http://gdata.youtube.com/feeds/api/users/username/playlists?start-index=1&max-results=50&v=2
To prevent additional calls against the v3 API (which can sum up), I store the uploads playlist id temporary, as long as it is the same channel/user.
I'm planning to retrieve the channel/user id using v2 API, so it does not call against v3 API (which requires authentication because of the API key).
Is anyone doing search with v3?
I can't find documentation/examples of what urls to load for a search! All google's docs show examples using their libraries. I'm using perl, there is no library offered. The "API Explorer" works without authentication, and I can't figure out how to get it to show me search WITH authentication!
Also, updating tokens is a nightmare; I guess I can do that with jwz's youtube-api.
Doing searches with v3 is still pretty easy:
https://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&q=$search&type=video&maxResults=10&key=$api_key
You need that pesky API key, though.
so that actually works? that's what i can't confirm.
because i've tried it, and got some "invalid key" error. maybe the token had expired, even though they're supposed to last for 60 minutes. or maybe you're supposed to immediately refresh it after creating your "project". or "token" != "api_key". i don't know.
Sounds like some of this confusion would go away by adding a --search mode to youtube-api.pl, since the (irritatingly complex) token refreshing logic is already handled there.
Right, I use your script to make the token. I plan to add search to it as soon as I figure out how.
I added --search to youtube-api.pl.
I found Google's "API console" to be pretty impenetrable, and my brain has ufortunately suppressed the horrors I went through trying to get things to work. But I vaguely remember that I had to add Youtube to the allowed services for my "application"? Or something?
And I just had a peek at the console. The key is really called "API key" (and is not called "token"), and is under the "Key for server applications" box on the page for my "application".
Google rocks, man.
Yes, you need to explicitly add the Youtube API to your API Console in your Developer Account, it is not activated by default.
There is a difference between a token and an API key (at least with Google):
A token is always session based and loses its permissions when you log out (for example). A token is generated, if you login to your Google account and, for example, allow a thirdparty application to access some of the data, which is normally protected. On most systems you keep logged in, even if you close the apps, except you uninstall the app or log out explicitly.
An API key is used to allow an app communicate with the system the key is for and is used to restrict the access.
Thanks guys! After reading these posts, the documentation makes so much more sense! My API Key has been created, and search works as advertised.
--
Another question: So there are four different kinds of "API Keys": for server applications (for making queries on behalf of other users), for browser applications (the one I want, mimics v2 access), for Android applications, for iOS applications.
Are there different API Keys for each API (Youtube Data, Youtube Analytics, various Maps APIs, Social APIs, Cloud APIs, mobile APIs, etc., ad naseum)? It appears not. I could be wrong.
Seems a little silly to use an "API Key" as an access restriction, but then not allow specific API Keys to be restricted to specific APIs.
That is, if I write a mapping program, "FapMap", I would turn on a Maps API and use an API Key for that program. If I then wrote a Google Contacts program, "Grindee", I would turn on the Contacts API and use an API Key. I could even use a different API Key. But it appears to me--and correct me if I am wrong--that ALL my API Keys can access ALL my enabled APIs. Do I want this? Do I care?
(Actually, that would be just fine. Because now I want FapMap to merge with Grindee to solve the weekend's traveling salesman problem.)
Each API from Google requires its own API key, means, you can't use your Youtube key for GMaps. If you try to use the key from another API, it would simply not work.
Server Applications: all applications running on a server system and providing some sort of network access; if you are programming a website, then this key is needed for the backend side, mostly containg the logic, e.q. written in PHP, ASP.NET, as Java Servlet or whatever.
Browser Applications: Client-side applications running inside the browser, either as JavaScript inside a webpage or as browser addon.
Android Applications: Client-side applications running on the Android OS, but if you are running server applications on Android (there are a few), you have to use the server key instead.
iOS Applications: the same as with Android Applications, just for iOS
Ugh. I'm here on the Developers Console, and the APIs section (where you enable and disable APIs) is parallel with the Credentials section (where you view your API Keys). And looking at my API Keys, there is nothing to indicate a given API Key is for any particular API. Even with multiple APIs enabled, the "Create new Key" button only shows the choices Server, Browser, Android, iOS--not choices for different APIs.
Similarly, when I look around at my enabled APIs, I see nothing that says "Hey, AAA and BBB are the API Keys that go with API XXX. CCC is the API Key that goes with API YYY."
How would I set which goes with which? I guess I don't care, because I'm only using the one Key right now.
Thats just the way most other providers handle this, so it seems that Google is different and allows for all APIs the same assigned key (at least which APIs are enabled in your account).
Since I only generated a key to use Youtube and don't need the others, I supposed it would require different keys for different APIs.
Also it's a shame, that all v2 calls are now throwing a 410 Gone, except for comments and captions. Working with v2 was really easy.
Fucking tell me about it. If I want to do a v3 search and rule out, say, videos with low play counts, I have to load fifty-one urls! One for the search, and one for each video. They'll happily tell me three different thumbnail urls for each video in the search results, but a play count or duration? Fuuuuuuuck no.
With v2, I could just do the search and say, "I want the following metadata." Bam, one page load. That's the optimal number of urls to wait for and parse; how many fewer urls could it be? None. None fewer urls.
Documentation for v2 sucked balls even harder than the current schlock, though. So that's an improvement?
How can I get feed for retrieving related videos?
Below link of Youtube feed(URL) to get most_popular video is throwing error now(Not Found)
http://gdata.youtube.com/feeds/api/standardfeeds/IN/most_popular?time=today&v=2&alt=json
Please help to get the different URL for the same purpose.
I have a page which lazy-loaded thumbnails for my playlist via the old RSS feed system. It's broken now: http://yiddishtheatersongs.com/yiddish-music-videos.html - I am not a developer so I don't know if this is fixable or I have to scrap the page completely? Help would be most appreciated!