Hi, I have an app that used the jtv archives API documented here: http://apiwiki.justin.tv/mediawiki/index.php/Channel/archives
There appears to be no equivalent in the Twitch API, and the jtv API has been disabled for twitch accounts as of a few days ago. This sucks, to be frank. According to this there is no plan to replace it, which sucks even more. I assume it was killed because you’re worried about accessing the archives and downloading VODs, but if so, this is totally shortsighted. Anybody motivated can still scrape the data from the page, but that’s annoying and error-prone, and you guys already support API keys, so you could ban any abusive use of the information. You’ve basically made it impossible to write legitimate apps that do cool stuff with this information.
Can you change your policy, and either re-enable the jtv API, or make the equivalent for the Twitch API, please?
You’re right in that it sucks that we no longer offer an API for retrieving videos.
However, it’s an untenable position for us to have any official support for a feature that doesn’t respect broadcasters’ access controls. There are many unofficial downloaders out there; our support team mentioned one already. In my experience, they tend to work pretty well.
I guess this isn’t the place to discuss this kind of policy, but the fact that it will always be easy to get the information through unsupported ways means all you’re doing is inconveniencing people who want to use the API to do cool stuff officially that makes you look good. This happens every time companies try to do this kind of restriction on the net with DRM, or obfuscating something that should be easy: you make it so legitimate users and developers are inconvenienced and discouraged from using your platform in interesting and innovative ways, but the pirates continue unabated. I don’t understand why companies seem to make this clueless mistake over and over again. Anyway, I hope you reconsider.
Thanks for answering,
I’ve been arguing against the change as well, and I’m disappointed at the lack of support from Twitch to actually provide easy means to grab content (even as a channel owner).
Many users wish to edit and upload their captured live gameplay to YouTube, and are unable to easily grab this data now. For users like myself whom grab downloads of streams to edit and make store-able highlights are also affected by the sudden change.
While the amount of users whom download raw footage might be only a small footprint of the community, I find it disheartening that Twitch feels the need to limit the exposure of raw files. Twitch shouldn’t cite access control issues when they could limit the API to prevent access where access controls are restricted.
I just started to livestream my game jam sessions and downloaded the stream videos in order to create timelapse videos. It was already a hurdle to jump through the API hoop in order to access the videos (convert them from flv to mp4 etc).
But setting the hoop on fire by removing the API is nothing I expected. I mean I will still be able to hack something together to access my videos or I will store everything locally as well.
I just don’t see the point. Is access to the API for channel owners too much to ask for? What would speak against it (I might not fully understand the politics behind it).
A disappointed twitch.tv user.
For the broadcaster, you can save your files locally and upload from your own pc. Xsplit and other software allows you to both save and broadcast at the same time. Some software allows you to save an even higher res version locally so that should be preferred.
As for our api, it shouldn’t return raw files to you without proper authentication. If we made these API’s public in our current setup, we’d have to support that in the future even though our position is that we need to put in access control.
Honestly, it is quite easy to discover archive URLs so saying that we don’t offer it is a bit disingenuous. We just are not publicly supporting the easily discovered ways of doing this because we plan to change things to protect the content the broadcaster produces.
I hope that helps explain things.
I understand why you guys did this, I just think it’s the wrong policy. I’m actually not that interested in my own archives because I do save them locally with OBS, I’m interested in other archives of people who stream my game, and doing cool stuff with them for the community (both mine and twitch’s) with the full permission of the streamers (even ignoring that it’s my game they’re streaming, which is a whole 'nother can of worms, cf. the recent Nintendo youtube fiasco). Saying that you can scrape the data easily is kind of a red herring…sure, as I said above, but that’s just putting friction into the system that will only prevent cool and interesting uses of the archives, it won’t stop somebody who wants to steal something. It’s exactly backwards from what you should be doing. I also think the “guilty-until-proven-innocent” take on IP-use over the past decade has done a lot of harm to innovation, even ignoring the legal concept of “fair use” and whatnot. You should err on the side of sharing, and then come down on somebody who abuses it, not make it hard to share for everybody from the get-go. Anyway, thanks for the response, it’s just unfortunate that you guys have taken this approach, I was hoping that since you guys are still a young agile company that you’d be a bit more clueful about the natural grain of information flow on the internet, rather than fighting it every step of the way like everybody else. Twitch is still great and I love you guys, but this is disappointingly short-sighted in my opinion.
I’ll drop it at this point because it’s become more about internet information philosophy than a simple API request.
I’d like to chime in as well.
All this change does is make it more difficult for the people who weren’t going to break the rules in the first place. There are a multitude of ways to get the videos without the API. Via scraping, flv downloading, bot-caching, you name it. This is an example of bad DRM, something that pretty much every twitch broadcaster knows inside and out.
Heck, if you want to give broadcaster control over their videos, why not simply add a radio button right next to the “allow embedding” that says “allow downloading”, and let that determine if the download links will appear in the API?