701 results found
-
Expose HLS playback URL via helix I'm building a third-party Twitch client for iOS + Android and embedding player.twitch.tv in a WebView with the embedded JS method. One major problem is that this process is quite fragile on mobile. Playback
works in the sense that audio plays and video advances but standing up a full chromium/safari instance on mobile is performance intensive and results in the view being quite taxing on the user’s device, in addition to not being the best developer experience:- WKWebView on iOS and Android System WebView both add memory and GPU cost on top of my application, rather than just using the…
2 votes -
Switch between Broadcaster/Viewer/Moderator/Anonymous Currently, testing extension UI across different user roles (Broadcaster, Moderator, Subscriber, Viewer, Anonymous) is a high-friction process that often requires coordinating with other users or managing multiple browser profiles. This inefficient feedback loop leads to avoidable production bugs.
I propose an "Extension Simulation Mode" within the developer dashboard that allows us to:
Role-Toggle: Instantly switch the Extension environment view between Broadcaster, Moderator, Viewer, and Anonymous roles.
State Simulation: Toggle common state-dependent scenarios, such as subscription status or mobile/desktop viewport layouts.
Impact: This would significantly improve developer velocity, reduce QA time, and increase the robustness of extensions by enabling comprehensive testing…
4 votes -
Hype Train Level Emotes Set There's currently no API to provide the list of emotes a hype train might provide. This could be done in multiple ways, both generally and in-context.
For example:
/helix/chat/emotes/setcould add some constant emote set IDs for this purpose, such ashype-train-lv1,hype-train-lv4, etc...
/helix/hypetrain/statuscould include the list of unlockable emotes for thecurrent.levelvalue.
EventSubchannel.hype_train.*could include the list of unlockable emotes for thelevelvalue.These would not require any new methods or events; just additional properties to the responses.
4 votes -
Allow Create Stream Marker to accept an App Access Token Last month a slew of API endpoints were given beta App Access Token support - which is great!
I was thinking the Create Stream Marker API would be a great candidate for also getting the App Access Token love.
In my case it would be useful for us to offer a configuration so that when someone did something special in our extension, we could automatically add a stream marker.
3 votes -
API and Dashboard Support for All Assigned Channel Roles There is already an endpoint that lets users see which channels they moderate. Please add a similar endpoint so users can retrieve all channels where they personally have assigned roles, such as VIP, Editor, Artist, Lead Moderator, or Channel Manager.
Please also expand the “My Assigned Roles” dashboard page to include currently missing roles like VIP and Artist.
2 votes -
Add source_broadcaster_id to Get Chatters endpoint for Shared Chat sessions Problem:
When a channel is in a Shared Chat session, the "Get Chatters" endpoint returns all chatters from all participating channels combined. There is no way to determine which chatters are native to which channel.Current behavior:
The endpoint only returns userid and userlogin for each chatter, regardless of Shared Chat status.Requested feature:
Add an optional sourcebroadcasterid field to the response (similar to how chat messages include source-room-id in EventSub). This field would indicate which channel the chatter is actually watching.This would bring the Get Chatters endpoint in line with the existing Shared Chat…
4 votes -
"Remind Me" notification bell on scheduled events when their live. I’m building a Twitch app/extension that creates and manages scheduled events via the Helix Schedule API. We can create/read/update schedule segments, but there doesn’t appear to be a public API for Twitch’s native “Remind me” / bell notification for scheduled events.
It would be nice to include the Remind Me button as an api call reminding users to call to action for certain events or when they go live.
We could have a simple button that says "Remind me" on our app.
2 votes -
Get Ad Schedule incorrect response Since very recently, the "Get Ad Schedule" endpoint no longer returns RFC3339 formatted strings, but instead seems to return a number (probably time since epoch). The documentation clearly says "The UTC timestamp of the broadcaster’s next scheduled ad, in RFC3339 format."
This is the case for:
- nextadat
- snoozerefreshat
- lastadatIs the resonse a bug, or did the endpoint change?
Thank you in advance.
3 votes -
Get Suspicious User Status We have the ability to SET or REMOVE a user/viewers sus status but not the ability to check a users sus status (outside of real time in chat)
This would be useful for extension developers to hold a sus users message for additionally moderation review before it goes thru to whatever outputs and extension has.
3 votes -
Add Channel Filter to Get Moderated Channels There exists a Helix API which allows you to use a user access token with user:read:moderated_channels scope to call Get Moderated Channels, returning a list of paginated channels that the user is a moderator for. https://dev.twitch.tv/docs/api/reference/#get-moderated-channels
I would like to be able to pass in a filter of channel ids (or broadcaster ids, the name is not precious to me) so that if I wanted to check a specific list of channels I could do so and potentially not have to iterate the cursor for results.
I also think there should be a flag showing whether the user is Lead…
3 votes -
Documentation Issues and Open Sourcing Twitch offers a very large, widely-used API to a very large developer base, and unfortunately the documentation currently provided is severely lacking, inconsistent and falling behind standards of both accessibility and developer experience.
I know this has been proposed some years ago, but I am going to recreate the voice as I believe I can add some extra points and reasoning.
Issues with Accessibility:
Twitch only offers developers documentation in a fully white (#FFFFFF) background. While this is acceptable for most, this can be extremely difficult to navigate for people with certain eye, neurological and learning conditions. High contrast websites…
33 votes -
First Time Chatters Allow the
channel.chat.messageEventSub subscription to include if it is the first time the user has sent a message in the given channel.We can see this with IRC but not EventSub.
I understand only broadcasters or moderators can normally see that directly from native twitch chat without extensions, so possibly a scope or moderator status would be required.
It would just be nice to retain that information because it is useful for streamers who might use chatbots to respond to first time chatters with a welcome message. Also it is useful for moderation tools to see if a flood…
166 votes -
Drops & rewards Drops & Rewards - Inventory - In Progress:
The ability to hide the drops that are finished, the 'This reward is no longer available' ones.
Some remain in view days after their finish date.5 votes -
Extend Clips API to provide the MP4 url for overlay automation Extend Clips API to provide the MP4 url so clips can be played in in broadcast overlays of raiding streamers and friends of a channel.
With Content Classification Labels so that they can be filtered out and not allowing unwanted continent from another streamer to be broadcast
The current <Iframe> Is unsuited for this as most broadcast software can not use an <Iframe> as a media source and the browser sources are laggy and unreliable at bn
When I make a request for a Clip as documented: https://dev.twitch.tv/docs/api/reference#get-clips
The JSON Response should include the direct link to the MP4 or…
23 votes -
Add Message Filter to Channel Chat Message Conditions Most bot functionality is behind trigger characters, with "!" being the most popular. For such bots, receiving a webhook message for every message in chat is an unnecessary number of requests. I suggest a simple prefix comparison or regular-expression based "message_filter" condition to allow limiting channel.chat.message subscriptions, reducing network overhead and load at the cost of a single comparison.
4 votes -
Add a bitflag to channel.chat.message for chatters (chatter_flag) In several discussions across Twitch-related Discord servers, it has been highlighted that the channel.chat.message payload currently lacks specific chatter status fields, such as ismoderator or isvip. Given the already substantial size of the payload, adding individual key-field pairs for each potential status could unnecessarily increase both bandwidth usage and processing time.
To address this, I propose the introduction of a single key: chatter_flags. This field would utilize a bit flag to represent multiple statuses within a single integer value. This approach not only minimizes data transmission but also simplifies the process of updating and checking user statuses—especially as new ntatuses…
30 votes -
Stream together participants in /helix/streams It would be nice if /helix/streams had an array of the channel id's of the channels its streaming with. One use case for this would up updating the automated live message in Discord if and with who they're streaming together in addition to updating the title/category
4 votes -
Ability to Select Playback Quality My internet is not fast. It would be nice if I can downgrade playback/streaming to a lower quality so that I don't experience video studder.
2 votes -
Trigger channel.bits.use on extension bits usage Currently the channel.bits.use event doesn't seem to grab extension bits use - for example, Tangia.
This is something that is already visible in the streamer (and moderator) activity feed, and it would be very useful to have on this eventsub trigger as well.
6 votes -
Improving Campaign Engagement Through Daily Watch Limits Right now, a campaign that requires 15 hours can just be binge-watched on the first day. I’d love to have the option to limit daily hours to encourage players to participate across multiple days instead.
5 votes
- Don't see your idea?