Closed oakenhold closed 7 years ago
This looks like an API bug to me.
As you can see in the v5 API docs, streams can be filtered by a stream_type
parameter (default value is live
). When requesting live
streams, neither playlist
streams, nor vodcasts (watch_party
streams) should be listed, but somehow, Twitch always includes vodcasts, no matter if you're using the implicit default parameter value or if you're setting it to live
explicitly.
In addition to the stream_type
stream property, they've added broadcast_platform
, which seems to have two different values, watch_party
and other
, where other represents regular streams. I'd not be surprised if they simply forgot to update the stream_type parameter that's being used for filtering.
Actually I'm approaching this from a Streamlink GUI perspective. Right now, when I browse through the Live Streams listing, I will not know which are vodcasts. While Vodcast streaming is new, it might potentially become more popular. My question will be how does Streamlink GUI handle the presentation of vodcasts?
So far, my experiences with watching vodcasts have been with the streamer going live with a vodcast and interacting with the viewers in chat, which will make me opt for the second option personally.
I think the vodcasts just need to be tagged / highlighted, because technically it's the same broadcaster and the stream doesn't differ from a live one. I'm not sure yet how to do this properly, since there's not much space left on the StreamItemComponent, we'll see. There needs to be an option though for filtering the different stream types, maybe just a simple dropdown next to the quick menu in the top right corner. But since the API is clearly bugged atm, adding such a filter right now wouldn't work. I'll see if I can make a new bug report on the Twitch dev forums later on.
Lately i saw the difference between "Vodcast" and "Live-Stream" also in the JSON that is been reported back from the API:
Vodcast has "stream_type":"watch_party" Live-Streams has "stream_type":"live"
hope this helps you to extent the functionality with an --exclude-vodcasts option
Here is the complete response: The Streamer "seleyes" is Vodcasting, the Streamer "Lisaroach" is live Broadcasting: jsons.zip
I would love to see this implemented as well! For example, some kind of ribbon in the corner of the thumbnail would be a great indicator, or maybe a text between the stream uptime and the viewers number
Sorry, I have been busy with other stuff. I'll see if I can add an indicator and then publish a new release before the upcoming TI.
As I've said, the Twitch API is returning invalid stream results and vodcasts shouldn't be included by default. The vodcast indication needs to be obvious. A centered icon (eg. http://fontawesome.io/icon/history/) between the uptime and viewers could work, but I have to see first what's the best solution here.
Would another option be to "dim" VODcasts like you can for streams outside your language? Perhaps add another navigation link under "Live Streams" and have it be "VODcasts"? Finally, could you not add a button in the menu of "Live Streams" which filters out VODcasts?
Either way, can we have an option to filter out vodcasts from notifications?
(Also I agree with dimming the vodcast listing)
As I've said, I'll see what I can do when I have the time to work on this. Regarding an option to filter VODcast streams, this is not possible due to the API bug I was talking about.
I have created a thread on the Twitch dev forums two weeks ago (in addition to an already existing one that got closed): https://discuss.dev.twitch.tv/t/streams-api-responses-always-include-vodcasts/11141 For some reason, no Twitch dev has responded yet. And as I have stated there, the API changes are totally messed up and can't be considered stable. If you want, you can comment on this thread over there to prevent it from getting closed again.
Regarding additional notification filtering, sure, this could be added, but I'd really like to rewrite the notification system first. I had started working on it one and a half month ago, but I don't know how long this will take when I continue with it.
I know you are busy, but do you have any progress on this?
The Twitch API is still missing the information required. You can see there has been no update from Twitch in the previously linked Twitch Dev discussion.
The information is there, isn't it? It just shouldn't be there, and it should be in a different way.
I haven't had time and motivation working on the app in the past two months, sorry about that.
The thread on the twitch dev forums is still unanswered and will be closed in a few days due to inactivity. There are several other v3/v5 API bugs which people are complaining about, but those are still unanswered as well. (You may have noticed the subscribe icon disappearing sometimes. That's an API bug with nested channel records and an invalid value of the partner property.)
The reason for all this is probably the newly announced API, which is a TOTAL MESS, and nobody at Twitch is working on the old (current) APIs anymore. It's beyond stupid what they are doing right now and what they are planning to do. Most features are still missing in the new API and it is unknown if the current API endpoints, public or not, will be implemented, so I'm not sure if applications like this will be able to survive. The new API also has introduced rate limiting per registered application, which is quite worrying, as the notification system here is causing quite a few requests per minute among all users. It's really not looking good right now and I'm super annoyed and frustrated about all of this. Twitch is turning their website/platform into Facebook 2.0 and at the same time are deprecating their current allegedly stable API, which is btw constantly receiving breaking changes. This thread describes the situation pretty well.
This means that everything new that gets implemented here is already deprecated on the current API. Also, as I've just said, and as the VODcast nonsense has proven, Twitch is actively making changes to the stable API. So is it worth working on new stuff? I'm not really sure.
What I will probably doing now with the VODcasts is "dimming" the streams, like @bap14 has suggested, but please give me a bit of time for that. I have just started working on the app again yesterday and want to finish what I had started before my little break. Then I'll also see if a new release is justified (the AUR package also needs an update and that would be an opportunity for that).
If you want, you can help by commenting on the threads on the Twitch dev forums and bumping them for attention (I hope I don't break any rules by suggesting that). Thanks!
Thanks for the detailed answer! Can the rate limit be solved by providing an option for users to register an application for themselves?
That's what's probably need to be done. But we will have to see first if it's actually really necessary. The deadline is 2018-12-31. Maybe something will have changed until then.
Was just about to post a request for a vodcast indicator based on text, but looks like it was added to v1.4 per the Nov 15, 2017 reference.
Very nice addition, but it would be even better if there was an option to hide these instead of just fading them (like we can with languages).
@Chris763454357 The Twitch API doesn't allow you to filter VODs... See my post above in this thread here https://github.com/streamlink/streamlink-twitch-gui/issues/478#issuecomment-319954667
Looks like Twitch has changed their "stable" kraken/v5 API...
Vodcast streams are now being identified by the "rerun" value of the stream's broadcast_platform
or stream_type
attribute (see the changes of 67d23f847fdcce7783389d668ccadc2c7d5ea45f). It also seems that you're now able to filter by broadcast_platform
property:
$ curl -s \
-H "Accept: application/vnd.twitchtv.v5+json" \
-H "Client-ID: phiay4sq36lfv9zu7cbqwz2ndnesfd8" \
-H "Authorization: OAuth YOUR-TOKEN" \
"https://api.twitch.tv/kraken/streams/followed?broadcast_platform=live" \
| jq -r ".streams[].channel.display_name"
$ curl -s \
-H "Accept: application/vnd.twitchtv.v5+json" \
-H "Client-ID: phiay4sq36lfv9zu7cbqwz2ndnesfd8" \
-H "Authorization: OAuth YOUR-TOKEN" \
"https://api.twitch.tv/kraken/streams/followed?broadcast_platform=rerun" \
| jq -r ".streams[].channel.display_name"
This works for all streams which are tagged properly by the broadcaster. Streams which are identified by title (custom vodcast regex) are of course not filtered.
I'll add a filtering option to the streams menus in the next couple of days
Twitch has recently implemented vodcasts and currently Streamlink GUI has no indication if a stream is actually live or a vodcast.
A suggestion is to add a "Vodcast" tag on the bottom line where the stream duration and viewer count is currently being shown.
Example from Twitch website directory view:
Twitch announcement article: https://blog.twitch.tv/vodcast-brings-the-twitch-community-experience-to-uploads-54098498715