The Twitch Developer community has created some incredible, open source projects that help developers get started on Twitch. These resources — as well as our own coding projects — are scattered across different sites like GitHub, Glitch, and the documentation. In order to centralize these resources, and showcase the code samples, tutorials, blog posts, and other content the community has created, we are launching the first iteration of https://dev.twitch.tv/code.
This will continue to be our destination to make educational resources and examples more discoverable for experienced Twitch developers as well as those just getting started. We appreciate all of the feedback on the Request For Comments and will use it as we continue developing and refining the page.
We are launching the code page with content from twelve community members. Developers who would like their content considered for this page can submit it for review. We are looking for great writing comprehension, code consistency and clarity, spelling and grammar, and repository descriptions that clearly define the function of the project. For GitHub projects, feel free to also add a topic to your repository with “TwitchDev” which will make it easier for us to proactively find great examples to share.
If your content meets the above requirements, or as soon as you’ve made necessary updates, submit it for review at https://link.twitch.tv/devsubmit! We look forward to your submissions, highlighting the awesome content the community creates, and hearing your feedback on this new resource.
Octane’s dipped into the trust fund and put his own personal twist on Kings Canyon: a stadium full of jump pads and fire where every Legend can unleash their inner daredevil. Now, you can show up dressed for the grand opening with the Whiplash Octane skin, free with your Prime membership.
Whiplash Octane is available August 13 — September 13. Visit twitch.amazon.com/apexlegends to claim your Apex Legends content.
What is Twitch Prime?
Twitch Prime is Amazon Prime’s home for gamers, and is included with Prime. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch AND all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
You can try it free right here, and when you do, you get all the Twitch Prime benefits instantly just by linking your Twitch account to your Amazon account.
We’re excited to announce the inaugural Twitch Research Fellowship program!
If you’re a doctoral student pursuing innovative research in fields relevant to Twitch, you can apply for a $10,000 award prize and a paid visit to present your research at Twitch HQ for our Science Team and CEO, Emmett Shear. In addition, Fellows eligible for employment at Twitch will be invited to participate in a 10-to-12 week paid internship with Twitch Science in San Francisco.
We believe in fostering a diverse, global community, so we highly encourage students from traditionally under-represented minority groups to apply.
Applicants must be full-time PhD students currently enrolled in an accredited university.
Students must be enrolled and involved in ongoing research during the academic year in which the Fellowship is awarded.
Students’ work should be related to one or more of the research areas listed below.
Students should not be current or former employees of Twitch and should disclose if they have a close relative currently employed at Twitch.
Applications will be evaluated based on the strength of the student’s research statement, publication record, and recommendation letters.
Applications must include the following:
250- to 500-word research summary which clearly identifies the area of focus of the research activities to which this award will be applied. This summary should highlight not only the importance to the field, but also the applicability to Twitch.
Resume or CV with email, phone and mailing address, and applicable coursework.
Two letters of recommendation; please provide reference email addresses. One reference should be from a current academic advisor.
Applied Statistics. Areas of research may include, but are not limited to, causal inference, anomaly detection, forecasting and time series analysis, optimization, regression, classification, clustering, and experimentation.
Computational Social Science. Areas of research may include, but are not limited to, information diffusion and influence, community norms and safety, computer-mediated communication, well-being, and social support.
Computer Vision. Areas of research may include, but are not limited to, image and video recognition (classification, detection, and segmentation), human understanding (face, gesture, and pose identification), scene analysis and understanding, and methods for large-scale streaming video analysis.
Information Retrieval. Areas of research may include, but are not limited to, search and ranking, document categorization and clustering, domain-specific applications, conversational search systems, human factors, and evaluation.
Machine Learning. Areas of research may include, but are not limited to, supervised learning, unsupervised learning, reinforcement learning, deep learning, and optimization.
Natural Language Processing & Speech. Areas of research may include, but are not limited to, machine translation, multilingual learning, acoustic event detection, speech recognition and synthesis, methods for analyzing short message text, summarization, and sentiment analysis.
Recommender Systems. Areas of research may include, but are not limited to, preference elicitation, algorithmic scalability and implementation, context-aware recommendations, interfaces and evaluation, user modeling, algorithmic bias, and ethics of recommender systems.
Additional Research Areas. We encourage applications from students working in areas outside those highlighted above, as long as they are relevant to Twitch.
How do I apply?
Applications will be open starting on September 1, 2019. You can apply by emailing the application materials listed above to fellowship-apps-2020@twitch.tv. Please ensure that your application contains all of the materials listed above, and please include your name and institution in the title of your email. We ask applicants to submit only once, so please ensure that your materials are completed and finalized before submitting.
What are the important dates for this program?
September 1, 2019: Application submissions are opened
October 1, 2019: Applications submissions are closed
December 1, 2019: Fellowship awards announced
Summer or Fall, 2020: Eligible awardees participate at Twitch as research interns with mentors.
Am I still eligible if I already have research funding?
Yes. However, if you are selected to receive the award, it is your responsibility to check with your existing funding source(s) to ensure that accepting the award will not impact your current support. In addition, it is your responsibility to ensure that accepting this award will not conflict with any of the rules or regulations of your university or local government.
Are there restrictions on how funds can be used?
Funds will be disbursed as an unrestricted gift to the student or the student’s current academic advisor. Applications should provide some explanation of how funds will be used to support the research activities described in the application. While this clearly includes costs associated with hardware, software, and data collection, we encourage applicants to consider other ways in which this funding could support their research, including conference travel, publication expenses, and childcare costs.
Will Twitch provide data to awarded students?
Twitch will not provide external access to data. Any data collected by students for external research activities must comply with both Twitch’s terms and policies and the institution’s Institutional Review Board (IRB). During the period of a Twitch internship, however, interns may be granted access to internal data sources. Researchers can, of course, make use of Twitch’s APIs to collect data as long as data collection complies with Twitch’s terms and policies, including the Developer Agreement.
How many Fellowships will Twitch award?
Twitch does not have a predetermined number of Fellowships that it intends to give out. Each application will be considered based on the novelty of the research, its relevance to Twitch and its business, and confidence that the proposed research can be completed.
Is participating in an internship required to accept the Fellowship?
We strongly encourage Fellows, where possible, to join us for an internship at Twitch, where they will have the opportunity to apply their research to solving large-scale problems in a fast-paced, industry environment. We recognize that some students may have constraints, such as concerns about work authorization, which may prohibit them from participating in an internship. As such, we do not strictly require students to commit to an internship in order to accept the Fellowship award.
What if I have questions about the Fellowship that aren’t answered here?
For any questions about the Fellowship or other research programs at Twitch, please send us an email at research-program-support@twitch.tv.
Streamers are at the core of every community on Twitch. When new streamers want to go live for the first time and start sharing their passions with the world, they should be able to do so with our full support. From setting up your stream to building your community, we saw an opportunity to simplify things for streamers who are just getting started.
Today we’ve opened up beta testing for Twitch Studio: an all-in-one streaming app for new streamers that cuts down on the guesswork to setup a quality stream and makes it easier to engage with your community.
Guided setup to help find your optimal settings, including connecting your mic and webcamCustomizable templates to get your stream looking just how you want itBuilt-in activity feed, alerts, and chat to help you engage with your community while you stream
To make sure it’s just right, we’re releasing a beta with limited features to a group of streamers to give it a spin, report any bugs, and share their feedback. Want to help? Sign up HERE. We can’t accept everyone right away, but we’re opening up more spots over time, so keep an eye out for an email!
Twitch Prime and EA Sports have teamed up to bring Jim Brown, one of the greatest NFL players of all time, to the Madden NFL 20 Ultimate Team. And he’s only available for Prime members.
In only nine years in the NFL, Jim Brown was named to the Pro Bowl every year, was an 8x First Team All-Pro, a 3x NFL MVP, and an NFL Champion. He totaled over 12,300 yards in those 9 seasons and many still consider him to be the greatest player who ever touched a football. Yeah, you want this guy on your team
Be sure to link your Prime and Twitch accounts to claim Jim Brown and add him to your Ultimate Team today! This content will only be available to claim through September 8th so be sure to get yours now.
Head on over here to get more information and claim your Madden NFL 20 content. There will be additional content coming in early September so be sure to come back to find out more.
What is Twitch Prime?
Twitch Prime is the Amazon Prime home for gamers, and is included with Prime. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch AND all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
You can try it free right here, and when you do, you get all the Twitch Prime benefits instantly just by linking your Twitch account to your Amazon account.
Calling all soccer fans. And futbal fans too. The MLS needs your help to determine who’s got the best skills in the league and if there’s one thing we know it’s that Twitch Chat has OPINIONS.
On July 30, the MLS is broadcasting some of their best All-Star festivities on Twitch, including the Shooting, Touch and Volley, and Passing competitions. In addition to seeing the best soccer players in the country show off their skills, Twitch Chat will be represented by a celebrity judge at the judges table to weigh in on who should win the Touch and Volley segment. Here’s how the challenge is going to work. You can vote using an extension that will be available on the official /MLS stream and any co-streams, putting you in control of who comes out on top.
The challenge works like this: A ball is served to a player who will attempt to score past a goalkeeper. These teams will have six shots to score as many points as they can. Points will be tallied based on how the shot is scored (e.g., bicycle kick, full volley, half volley), and the judges will award one team an extra 20-point bonus for style.
After all three teams have completed the challenge, judges will hold up cards to indicate who they think demonstrated the most style and are most deserving of extra points.
Here’s a full schedule of what you can watch on Twitch:
July 30
– 5:00pm PT: MLS All-Star Challenges begins
– 5:10pm PT: Shooting Challenge
– 5:30pm PT: Touch and Volley Challenge
– 6:00pm PT: Passing Challenge
It all goes down on /MLS, so make sure to follow and set a reminder when they go live.
5.5 Using the discriminator to improve data quality
At this point, I started struggling with new programmatic ways to improve the dataset quality. New rule-based approaches had low precision, filtering out too many good emotes along with the bad. However, there was still a non-trivial proportion of low quality emotes, far too many to remove by hand. The goal was to build a more complex system to be able to detect these and remove them from the training dataset. While coming up with ideas, I realized that I already had something that could work for this task.
Although the GAN trained two neural networks, a discriminator and generator, only the generator was actually used. The discriminator was discarded after training, as it was no longer needed to synthesize emotes.
While training a GAN, the purpose of the discriminator is to detect which emotes come from the training set and which are generated by the generator. As such, the discriminator become very adapt at detecting “strange” images which do not match the patterns found in the majority of the training data. This is used during training to update the generator’s weight to produce better quality images.
I took the training dataset and fed every emote through the trained discriminator. The output of this was a score for each emote ranging from -100 to 100. This score indicated the discriminator’s belief that the emote came from the training dataset (100) or was generated (-100). The scores for the training emotes were roughly normally distributed, having a large center cluster and tail of outliers with both very positive and very negative scores. Interestingly, the mean score for the training emotes was only weakly positive.
I then visually inspected the emotes which were scored at the extreme ends of this range. Training emotes which scored very low (below 0) were generally overly simplified, heavily rotated, did not have a very clear face in the image, or had text in the image that EAST had missed. These were removed from the dataset.
Low-scored Emotes using the discriminator
On the opposite side, the very high-scored emotes were also useful to remove. Although these were generally high quality faces, they were plagued by another problem — duplication.
High-scored emotes using the discriminator
Each of these emotes were duplicated dozens of times in the dataset. As discussed prior, this duplication caused training to drastically over-weight the features from these emotes. This could be observed in the generated emotes from the last training run.
The reason that these were not able to be filtered out during the previous image-deduplication was that they were uploaded many days apart. As such, their drastically different emote_ids would fall outside of the 1000 emote width window function when the duplication detection code was run. These were also removed from the dataset and training was re-run.
I wonder if this approach of leveraging the trained discriminator to provide useful work outside of the training backpropagation step could be applied more broadly for other aspects of GAN training. One potential use of the trained discriminator is automatically adjusting the composition of the data during training in order to speed GAN convergence. Being able to identify which specific training examples are providing most of the “learning” would allow you to dis-proportionally feed these though the GAN, potentially improving the training rate.
At this point, I felt as though the improvements in generated emote quality had slowed enough that small iterative changes was unlikely to lead to further realism. As such, I chose to move on and create new GAN training datasets using the lessons learned from trying to synthesize realistic faces.
Level up the Twitch community with game-matched Extensions
We’re so excited to announce Twitch Developer Jam: 2019! This Extension Jam aims to encourage developers to create awesome “game-matched Twitch Extensions” that bring more game content, better functionality, and tailored interactivity to some of our most popular games, like Fortnite, World of Warcraft, and Grand Theft Auto V!
What’s a game-matched Extension? Glad you asked!
Game-matched Extensions are powered by game data to deliver rich, meaningful real-time experiences that prioritize viewer interaction and participation.
Twitch Developer Jam: 2019 lasts for three months, starting today and ending October 22. Winners and finalists will be awarded from a total prize pool of $60,000 and will receive highlights on TwitchDev Weekly! It’s important to remember that your game-matched Extension needs to be approved by our review team and released by the submission deadline to be eligible to win.
Level up the Twitch community with game-matched Extensions
We’re so excited to announce Twitch Developer Jam: 2019! This Extension Jam aims to encourage developers to create awesome “game-matched Twitch Extensions” that bring more game content, better functionality, and tailored interactivity to some of our most popular games, like Fortnite, World of Warcraft, and Grand Theft Auto V!
What’s a game-matched Extension? Glad you asked!
Game-matched Extensions are powered by game data to deliver rich, meaningful real-time experiences that prioritize viewer interaction and participation.
Twitch Developer Jam: 2019 lasts for three months, starting today and ending October 22. Winners and finalists will be awarded from a total prize pool of $60,000 and will receive highlights on TwitchDev Weekly! It’s important to remember that your game-matched Extension needs to be approved by our review team and released by the submission deadline to be eligible to win.
Prime Day might be over, but we’ve got one last video game deal for Prime members in the United States only. Included as part of your Twitch Prime gaming benefits, Prime members can get a free* video game to choose from in the list below:
· The Sims 4 (PC)
· Fallout 76 (PS4)
· Last of Us Remastered (PS4)
· Starlink (Switch)
Offers while supplies last, so act fast to get your favorite before it’s gone! Please see the Terms & Conditions section down below for full details.
*You will receive the value of the game as a credit to your Amazon account 7 days after your purchase.
How to Claim
Sign up for Prime if you haven’t yet! Click here for instructions.
Be sure to link your Amazon Prime and Twitch accounts to unlock your gaming benefits if you haven’t already. You can do so by clicking here and clicking on “Sign In”.
Head over to twitch.tv and click on the crown icon in the upper right navigation bar.
Click on the Post Prime Day free game offer and follow the instructions to claim.
About Twitch Prime
Twitch Prime is the Amazon Prime home for gamers. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch and all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
Terms & Conditions
• Offer expires at 11:59 p.m. (PT) July 26, 2019. • Offer is limited to the following games: — Fallout 76 — PlayStation 4 [Physical version] — Fallout 76 — Xbox One [Physical version] — Starlink Battle for Atlas — Nintendo Switch Starter Edition [Physical version] — The Last of Us Remastered Hits — PlayStation 4 [Physical version] — The Sims 4 [Online Game Code] • Offer only applies to the above games sold on Amazon.com by Amazon.com or Amazon Digital Services LLC (look for “sold by Amazon.com” or “sold by Amazon Digital Services LLC” on the product or content detail page). Products and digital content sold by third-party sellers or other Amazon entities will not qualify for this offer, even if “fulfilled by Amazon.com” or “Prime Eligible”. • Limited quantity available. • Offer is limited to U.S. only. • Offer limited to one per customer and account. • Offer may not be combined with other offers. • The maximum benefit you may receive from this offer is $15. • This offer is available to Twitch Prime members only. • You will receive an e-mail from Amazon within 7 days after product has shipped that indicates the dollar amount of the promotional credit and that the dollar amount of the credit has been added to your customer account. The e-mail will also provide instructions on how to redeem the promotional credit. • Promotional credit expires at 11:59 p.m. (PT) December 31, 2019. • Promotional credit only applies to all Amazon items shipped and sold via Amazon.com • Amazon reserves the right to modify or cancel the offer at any time. • Offer is non-transferable and may not be resold. • Offer discount will be allocated proportionally among all promotional items in your order. • Digital content and services may only be available to customers located in the U.S. and are subject to the terms and conditions of Amazon Digital Services LLC. • Shipping charges and taxes may apply to the full value of discounted and free promotional items. • If any of the products or content related to this offer are returned, your refund will equal the amount you paid for the product or content, subject to applicable refund policies. • If you violate any of these terms, the offer will be invalid. • Unless an Amazon Gift Card is the stated benefit of the promotion, promotional codes (including those placed directly in accounts) may not be redeemed for Amazon Gift Cards.
Up your Dauntless build with new in-game loot available for Twitch Prime members
Think your squad has what it takes to be on top? Download Dauntless for FREE now and find out how your skills stack up in the face of powerful behemoths across a massive online world. There’s a reason why this Action RPG from Phoenix Labs broke the 10 million player mark just 3 weeks after launch — and there’s never been a better time to join the hunt.
Get the Combat Essentials Supply Pack for FREE
Starting July 9, Twitch Prime members can get the Combat Essentials Supply Pack, including 50 Ace Chips, assorted potion pack, 1 Patrol Boost (7 days), Purple Dye, and TWO pieces of the Desperado Armorset — the Poncho and the Greaves. Claim now!
Here are the top three reasons you should already be playing Dauntless:
Slay with your squad. It’s available cross-platform on PC, PS4 and XB1, so you can drop into co-op battles wherever you game.
Customize your loadouts. Craft deadly weapons and powerful armor made from the very creatures you destroy.
Get rewarded. Get your FREE Combat Essentials Supply pack just for being a Twitch Prime member.
Coming Soon: A New Way to Play
Test your mettle against the masses with a new way to play Dauntless.
Trials: Earn exclusive, prestigious rewards with hard-earned currency, etch your name onto the Wall of Champions, and show off that you really are the best of the best. Only the deadliest, most efficient teams and solo players will be ranked on top! No more claiming you’re the best — it’s time to prove it.
What is Twitch Prime? As a part of Amazon Prime, Twitch Prime comes with the best perks for gamers. Benefits include in-game loot, FREE games, a FREE monthly channel subscription on Twitch. Plus you’ll also score all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one FREE pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited FREE two-day shipping on more than 100 million items.
Start your FREE trial right now, and get all the Twitch Prime benefits instantly just by linking your Twitch account to your Amazon account.
EA Sports and the FIFA team, the most popular sports game franchise in the world, is teaming up with Twitch Prime to offer members two exclusive content drops over the next two months in FIFA Ultimate Team. Starting today, Prime members can get a jump start on the FUTTIES Ultimate Team program with a Twitch Prime Pack that guarantees one 86 OVR or better player plus 3 rare gold player items.
The FUTTIES program is a special event in Ultimate Team that features special Reward Packs, FUT Favourites voting, and the return of the best players of the year from FUT 19. Celebrate the best of FUT 19 and the FUTTIES with Twitch Prime.
Check out the FIFA 19 Twitch Prime homepage at twitch.amazon.com/fifa19 to get more information and claim your FIFA 19 content. This first content drop will be available to claim until August 8th. Be sure to check back for additional drop details at that time.
What is Twitch Prime?
Twitch Prime is Amazon Prime’s home for gamers, and is included with Prime. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch AND all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
You can try it free right here, and when you do, you get all the Twitch Prime benefits instantly just by linking your Twitch account to your Amazon account.
A special Apex Legends care package is here and it’s only available for Prime members!
Twitch Prime and Respawn have combined forces again to bring even more Apex Legends in-game content for Prime members with 4 in-game content drops over a three month period. Starting today, Prime members can claim the exclusive Sweet Dreams Wattson skin shown above that this legend rocking out in unicorn gear. Prime members can also claim the Stellar Stallion skin for the brand new weapon, L-Star.
Head on over here to get more information and claim your Apex content. Be sure to come back for additional drops later in July and August.
What is Twitch Prime?
Twitch Prime is the Amazon Prime home for gamers, and is included with Prime. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch AND all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
You can try it free right here, and when you do, you get all the Twitch Prime benefits instantly just by linking your Twitch account to your Amazon account.
Notify your Discord and website when streamers go live with your Extension!
This is a guest post by Matt Condon (Thanks, Matt! 👋), one half of the two-person team at dot that builds the Stickers Extension.
The Stickers Extension turns any stream into a canvas for viewers where viewers receive rare digital stickers that they place on-stream for everyone to see in real-time. Each time a viewer places a sticker on-stream, every viewer sees it for a few seconds and the Extension gives the placer a shout-out in chat. Subscribers can claim a free sticker ticket every week, and since each sticker is a scarce, unique item, stickers placed on a stream are now owned by the streamer, who can spread the love to other channels.
Recently, as part of the Stickers website and Discord, we added a live feed of channels that are streaming with the Stickers Extension enabled. With live channels on the Stickers website, prospective streamers can easily see Stickers live on an active streamer’s channel, helping them understand how it will look on their own channel and affect their viewers. Plus, with the live feed in Discord, chatters see when a new streamer goes live, as social proof that the Stickers Extension is being used across Twitch.
We have so many live streamer notifications that I’m tempted to mute the channel, but I love knowing when a new streamer joins the Sticker fam.
The stickers website with a list of live channels in the footer.
The Stickers Bot posting a live notification for FluxFer in the #live-with-stickers channel in the Stickers Discord.
We’ll show you how to build a feed of live channels for your own Extension and how to integrate it into your own Discord channel and website. We’ll assume basic knowledge of Lambda and basic understanding of how to use databases like DynamoDB, but you can use the technique here with any technology stack you choose.
How the Live Channel Feed Works
The live channel feed consists of two separate outputs:
A list of all of the currently active channels in order to display them on the website.
A feed of new channels going live in order to post messages in the Discord.
The Twitch Extension API provides the useful endpoint live_activated_channels which returns a paginated list of channels that are live with your Extension activated. We’ll periodically ask Twitch for a list of live activated channels and then do our own processing to create a list of channels and a feed of newly live channels. Note that streamers will take a few minutes to show up in the list provided by this endpoint, so if you’re looking for by-the-second updates on when streamers go live, read the Twitch documentation–specifically the Webhook support via stream_changed.
Backend Architecture
At dot we rely heavily on AWS, among others, for our backend infrastructure — Stickers is a real-time serverless application that has run with 100 percent uptime over the last two months.
We leverage AWS’s serverless-friendly products like Lambda, DynamoDB, AppSync, and CloudWatch in particular to drive the live feed.
The backend architecture of our live channel feed, described in detail below.
Every 10 minutes, a CloudWatch Rule invokes a sync_live_channels Lambda function which queries the Twitch Extension API for live activated channels — paging through the returned pages — and stores the results in a DynamoDB table called live-channels.
The live-channels table has an item TTL of 15 minutes, so stale items are removed 15 minutes after insertion. This keeps the list of live channels fresh — streams that go offline will be removed within 15 minutes.
To get a list of channels, the get_live_channels Lambda function runs a DynamoDB query against the live-channels table’s by_view_count index — sorted by a streamer’s view_count — and returns that list to the caller.
To produce a list of newly live channels, the DynamoDB Stream from live-channels is forwarded to a Lambda consumer called notify_live_channels which then posts a message to Discord using their webhooks API.
Let’s break some of those steps down with some code examples! These examples are in TypeScript, a typed superset of JavaScript that JS developers should feel at home reading.
The sync_live_channels Lambda function
The sync_live_channels Lambda function is responsible for pulling the list of live channels from Twitch and storing them in our DynamoDB table.
Here we can see some pseudocode for querying the Twitch API and storing the results in our live-channels DynamoDB table. At the moment, there’s a bug in the API response: occasionally, you’ll receive a response with an empty list of channels but still receive a cursor for the next page. Once you query that cursor again, Twitch will return the next page of live activated channels to you, so your code must be able to handle the case where no channels are returned in the response, but a cursor still provides another page. The TwitchAPI team is aware of this minor issue, though it’s always advisable to check your data!
The notify_live_channels Lambda function
This Lambda function is subscribed to DynamoDB Stream events from our live-channel table, so it gets invoked when items are added. This Lambda’s job is to take the new stream, combine it with other information we know about the streamer — using the Twitch API — and publish that information to our Discord channel.
Notice how we use the Twitch brand purple — encoded in decimal — as the color for our Discord embed; that’s what gives us the pretty purple border to the left of Discord messages! Also notice that we restrict Discord notifications to streamers with at least 5,000 total views on their channel; this helps us avoid spam from accounts with low view counts that may install the Extension.
To get a Discord Webhook, set up a webhook in the channel you’d like messages to appear.
Configuring a Discord webhook for the #live-with-stickers channel in the Stickers Discord.
And then enjoy the result!
A notification for CrazeG4 going live with Stickers.
The get_live_channels Lambda function
This Lambda function is in charge of querying the currently live channels and returning that to the caller. In a production application, you would expose this with an API Gateway route or an AppSync resolver and cache the result.
This Lambda function queries the DynamoDB index for the top 20 live channels ordered by their view_count, merges that data with extra information about the streamer we know, like their profile_image_url and login, and returns the bundle of data to the caller.
On the frontend, we can build our UI with the following elements:
the streamer’s profile_image_url
a recent frame from their stream, which is provided via thumbnail_url in the /helix/streams endpoint, and adding our dimensions of 256x144
a link to their Twitch channel like https://twitch.tv/{login}
This year, our favorite made-up holiday, Amazon Prime Day, takes place July 15 & 16. To celebrate, Twitch is hosting our very own live shopping show on /twitchpresents that promises to be unlike anything you’ve ever witnessed…but, like, in a good way. It’s called Twitch Sells Out: A Prime Day Special Event, and it starts July 15 at 10am PT.
We’ve gone through every single item on sale for Prime Day and curated the best of the best for the Twitch Community. During two, twelve-hour broadcasts — one on July 15 from 10am to 10pm PT; the second on July 16 at the same time — dozens of your favorite Twitch streamers will be showcasing deals on everything from games and gaming peripherals, to kitchenware and electronics. They’ll also dive into previously unseen demos and gameplay of some of the most anticipated releases of the year. And you can buy or pre-order it all instantly on stream. We’ll even shine the spotlight on some of Prime Day’s more…unusual items for sale. You’ll just have to tune in to see what we mean.
Twitch Prime is all you need
To get in on all the incredible deals, you’ll need to have Prime, so make sure you’re all signed up or take a free trial before the big day so you don’t miss any of the featured sales. Some of them will only be available for a limited time, so if you’re busy signing up you may miss out. And don’t forget, you’ll also get a free channel subscription plus tons of other Twitch and Amazon benefits when you sign up.You can start a free trial RIGHT NOW by clicking here.
Co-stream the show with us
Because we want everyone to celebrate Prime Day with us, co-streaming will be enabled for the entirety of Twitch Sells Out. So feel free to add your own commentary to the items we’re featuring. The Blacksmith Extension, an interactive on-screen overlay with links to purchase the products, will be in ‘Live Event Mode’ so if you’re a Partner or Affiliate, make sure you enable it on your channel to get a share of the revenue for any product or Prime sign-up sold through your channel. Want to know more about Blacksmith and how to set it up on your channel? Head on over to this handy blog post that talks about just that.
Who’s hosting?
Some amazing Twitch streamers will be joining us to host and participate in Twitch Sells Out. (They’re all currently locked in a windowless room watching an almost unhealthy amount of infomercials to get ready.) We can’t name names just yet, but we can promise that many of your favorites will be involved. We’ll be announcing the full list of who’s participating on July 10.
What else is happening for Prime Day?
Twitch Sells Out is just one way to get involved this Prime Day and in fact there’s a whole lot more in store for Prime members. Here’s some of what you can expect:
Twitch merch is on sale! Prime members, take 30% off your entire Twitch Merch purchase from July 3 to July 16. Enter promo code: PRIME2019 at checkout. Shop at the store right here.
Bonus Bits!We’re throwing in 10% more Bits when you Cheer ten or more with the BleedPurple Cheermote in any affiliate or partner channel.*
In-game content and a celebrity-filled live streaming event for both Apex Legends and EA Sports. Click here for more details.
*This is a limited time offer. Offer begins on July 10, 2019 and expires on July 16, 2019 at 11:59PM PT. Offer is subject to all Twitch terms and policies, including the Bits Acceptable Use Policy. Twitch reserves the right to modify or cancel the offer at any time.
Get a cut when viewers make Prime Day purchases on your channel.
The Amazon Blacksmith Extension allows you to showcase your favorite products in an overlay or panel and earn revenue from sales through the Amazon Associates program.
For the 48-hour duration of Prime Day, Blacksmith will generate a series of notifications that include links for viewers to purchase the best Twitch-curated Prime Day products and deals. Whether you co-stream Twitch’s show, Twitch Sells Out, or just shop deals with your community — this is a great opportunity for you to earn affiliate revenue when your viewers make purchases on your channel.
Additional Prime Day revenue opportunities via the Extension include:
2X bounties for Prime Sign Ups (from $3 to $6 during the month of July)
$500 Bonus cash if you exceed $5k in products sold (See details below)
The Prime Day “Live Event Mode” experience is designed to be on screen as an overlay but a similar experience will be available through the panel as well.
Blacksmith Set-Up Instructions
Partners & Affiliates,click hereto install and activate the Blacksmith Extension!
Ok! It’s Installed, What’s Next? That’s it! Event Mode will be turned on by default and will start to push out Prime Day Deals on July 15th at 12 AM PST
Co-Stream Twitch Sells Out
The entire Twitch Sells Out stream can be co-streamed. All 36 glorious hours of it. So feel free to add your unique commentary on the show and the deals. For maximum exposure and discoverability we recommend you co-stream under the following settings:
CATEGORY: Special Events
TAG: Co-stream
More Details / FAQ
Who can use Amazon Blacksmith? Twitch Partners and Affiliates can join the Associates Program and use Amazon Blacksmith to earn on Twitch.
How does the $500 Bonus work? For the month of July, if you exceed $5k in products purchased via the Extension on your channel, you’ll be eligible for a $500 bonus..
When / How will it get paid out? The bonus will be paid out via your Amazon Associates account.
How do I turn it off? You can turn on/off Prime Day Event Mode content in your card configuration by toggling Event Mode.
Overlay or Panel? Live Event Mode within the Overlay is the premier experience, however the Panel is supported as well. Choose whatever feels right for your channel.
We’ve added a number of exciting and often-requested features to the Twitch API in the past three months. There’s something for everyone — ease of some developer pain points, previously unavailable Twitch functionality, and a new mechanism to ingest subscription data.
Bits Transaction API
Imagine you built a new Extension — it’s fun, entertaining, and it leverages Bits as a monetization mechanism. It’s getting traction among broadcasters, but its popularity is also its downfall — your Extension Backend Service experiences a temporary outage due to high load. In this scenario, it is difficult to retroactively fulfill the benefits to viewers who have already used Bits via the Extension.
The Bits Transaction API is a new way to retrieve a list of historical transactions that have occurred within your Extension across all of the channels where it was installed. The API is comprised of a single endpoint and a corresponding Webhooks topic; you can use the latter to be notified of transactions as they are processed.
By using this API, you can “replay” the missing transactions and fulfill the relevant benefits to viewers who were affected by the outage.
Moderators play a crucial role in making sure a channel is a welcoming place. To bridge the gap between the tooling at their disposal and what’s available programmatically, we recently released the first iteration of the Moderation API.
You can now retrieve the list of channel moderators, determine a user’s moderator status, and get notified when a broadcaster adds or removes a moderator. Similar functionality is offered with respect to banned users, as well as those on a timeout. Finally, an additional endpoint allows you to check the compliance of a string against the channel’s AutoMod settings.
This API is particularly useful if you’re building an Extension that facilitates user-generated content. For example, if your overlay Extension displays alerts based on viewer-submitted text, it would be a good pattern to first check if the user should be able to use the Extension at all (e.g., if they are banned in chat or not) and second whether their submission is acceptable with regards to the channel’s AutoMod.
Learn more:
Subscriptions API
Last year, we’ve added the ability to retrieve the list of broadcaster’s subscribers to the Helix namespace. To further flesh out this functionality, we recently released an additional subscriptions-specific endpoint which in turn powers the relevant Webhooks topic.
By subscribing to this new topic, you can immediately get notified when viewers subscribe, unsubscribe, and share their subscription status with the broadcaster in chat. You can also determine the subscription tier, as well as whether the subscription was a gift or not.
Subscriptions are a powerful signal that you can use as a trigger in your integrations. For example, you could avoid aggressively polling the API to determine whether a viewer has access to functionality available only to channel subscribers.
Venture onto the virtual pitch for this year’s Twitch Prime Crown Cup in London on July 13 featuring EA SPORTS titles. Starting at 10AM PT, teams of celebrities from the worlds of sports and TV will vie for the crown in a fun contest live on twitch.tv/twitchprime. Who will run the table — or deliver the epic comeback — to take home the crown?
Hosted by streamer Castro1021, the event consists of 4 teams, each featuring a celebrity captain, a streamer, and two additional TV or sports celebrities. With each match being 2-v-2, we’re sure to hear lots of smack talk from their other teammates in the gallery, so make sure you catch all the action live! After 6 league matches, the top 2 teams play off in a grand finale, where the winner is crowned champion.
Event festivities kick off July 8 with Castro engaging with his community on his Twitch channel to select a daily draft pick for each celebrity captain. Make sure you tune in to help build the teams the celebrities will use!
The contest also features items from the exclusive Twitch Prime EA SPORTS title’s in-game content drop taking place a few days before the London Twitch Prime Crown Cup begins, so make sure you’re following Twitch Prime’s Twitter, Facebook, and Instagram feeds to get the latest information on what’s dropping so you have all the goods before your friends.
For the latest in Prime Day gaming deals, exclusive Twitch Prime content, and more, head over to twitchprime.com.
And finally, stay tuned for more Prime Day announcements from Twitch tomorrow.
Follow us on social media
About Twitch Prime
Twitch Prime is the Amazon Prime home for gamers. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch and all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
Twitch Prime is teaming up with EA to create a Prime Day experience like no other: the Twitch Prime Crown Cup in Las Vegas, featuring Apex Legends. Starting at 2PM PT on July 13, this year’s event brings music, movie, and streaming celebrities together with Prime members in an epic battle live on twitch.tv/twitchprime to see who will take home the title. There can be only one to wear the crown!
Kicking off with the debut of a new single by multiple Grammy-nominated producer and songwriter Murda Beatz, the Las Vegas Twitch Prime Crown Cup rolls into round-by-round Apex Legends action hosted by TimTheTatman with commentary and interviews between each match provided by Kevin Smith and Jay Mewes (Jay and Silent Bob) throughout the event.
The competition also features Apex Legends’ character and weapon skins exclusive to Twitch Prime members that are dropping just days before the event. So, make sure you’re following Twitch Prime’s Twitter, Facebook, and Instagram feeds to get the latest information on what’s dropping in the days leading up to the Vegas Crown Cup so you have the goods before all your friends.
Our day starts off at 2 p.m. with a Streamer Challenge, where eight special-guest Twitch streamers square off to see who will advance to the Crown Cup main event, which begins at 4:30 p.m. PT. After a few rounds of pool play, the action advances through semi-finals to the Crown Cup Finals, scheduled to start at 7 p.m. before the evening closes out with a trophy ceremony and music set by Murda Beatz.
For a sneak peek at the Crown Cup action, be sure to tune in to the practice rounds July 11 and 12 starting at 6 p.m. PT live on twitch.tv/twitchprime as our celebrities take their first steps into the world of Apex Legends with our guest streamers. You won’t want to miss out on the round-by-round commentary as the celebrities stop by the broadcast booth when they’re not playing, commenting on the success… and epic failures… of their fellow stars.
For the latest in Prime Day gaming deals, exclusive Twitch Prime content, and more, head over to twitchprime.com.
And finally, stay tuned for more Prime Day announcements from Twitch tomorrow.
About Twitch Prime
Twitch Prime is the Amazon Prime home for gamers. Benefits include in-game loot, free games, a free monthly channel subscription on Twitch and all the benefits of being a Prime member — including unlimited access to award-winning movies and TV episodes with Prime Video; unlimited access to Prime Music, Prime Reading, Amazon Photos; early access to select Lightning Deals, one free pre-released book a month with Amazon First Reads, deep discounts at Whole Foods Market, and unlimited free two-day shipping on more than 100 million items.
Communities are the :bleedPurple: heart of Twitch. When streamers and their viewers come together week after week to bond over the things they love, they build authentic connections that make Twitch a place like none other.
Creators often ask us for new and better ways to reward their viewers; VIP badges and custom Sub emotes are just a few examples. The next gadget we’re adding to their kit is Subscriber Streams. This feature launches in beta today, and we’re breaking it down right here, right now.
What are Subscriber Streams and how do they work?
Subscriber Streams are an exciting new way for streamers to offer another benefit to some of their biggest supporters — subscribers, VIPs, and Mods.
If a viewer subscribes to a channel at any tier, including a Twitch Prime subscription, they’ll have access to that creator’s Subscriber Streams. If they’re not a subscriber and they arrive on a channel that’s running a Subscriber Stream, they’ll see a preview of what’s going on and, if they’d like, they’ll be able to join the party immediately by subscribing.
What are the requirements?
We’re excited to get this feature into as many creators’ hands as possible, but it’s also crucial that streamers and their communities stay safe and follow our guidelines (see the section below). The requirements to broadcast a Subscriber Stream are:
The streamer must be a Twitch Affiliate or Twitch Partner.
The streamer must not have violated the Twitch Community Guidelines in their last 90 unique broadcast days. This means that if their channel received a suspension, they would need to broadcast on 90 different days without another violation to be eligible again.
Steps we’re taking to help keep Subscriber Streams safe
As with any other stream on Twitch, Subscriber Stream content must fall under our Terms of Service and Community Guidelines. Subscriber Streams are not private, and we’ve taken steps to ensure a safe and welcoming experience:
As mentioned above, to broadcast a Subscriber Stream, creators must have streamed 90 unique days without a violation. If a qualified streamer does receive a violation, they’ll need to meet this requirement all over again to re-earn access to the feature — starting from day 0.
Subscriber Streams are not private streams. When you arrive at a Subscriber Stream as a non-subscriber, you’ll be able to preview the content live, subscribe, and join the community right away if you’d like.
Subscriber Streams are tagged “Subscriber Stream” for easy discoverability. This tag cannot be removed, and it will always appear first when multiple tags are in use. People can view live previews and report content if they believe it violates our Terms of Service or Community Guidelines.
Subscriber Streams are launching in beta. If you have ideas about how to improve Subscriber Streams, we’d love to get your feedback right here.
What kind of stuff can creators do with Subscriber Streams?
Streamers on Twitch have a way of surprising all of us by using our new features in unexpected ways (we’re looking at you, Squad Streamers), but we could definitely see competitive streamers taking requests on heroes or champions to play, tabletop streamers running a weekly campaign for Subs, music streamers making all-request set lists, and a whole lot more.
What does a Subscriber Stream look like?
Pretty much the same as any other stream — but there are a few small differences.
Subscriber Streams will automatically be tagged “Subscriber Stream” for easy discoverability, and the tag cannot be removed. Subscriber Streams will also feature a star icon (like the one on the Subscribe button) in the left nav on twitch.tv.
And lastly, arriving at a channel running a Subscriber Stream as a non-subscriber will bring up a live content preview. If you like what that community is into, you can subscribe to join immediately and start watching and chatting to your (purple) heart’s content.
In short, they look like this.
How do VODs work for Subscriber Streams?
After a Subscriber Stream, the corresponding VOD will automatically be available for Subscribers. This is regardless of whether the Subscriber-only archives setting in your Dashboard settings is toggled on or off.
If you so choose, you can edit permissions on individual Subscriber Stream VODs via the Video Producer tab of your dashboard.
How do Clips work for Subscriber Streams?
Clips can still be created during a Subscriber Stream and shared during and after the stream. Clips created from Subscriber Streams will not have any restrictions placed on them. If you do not wish for Clips to be shared you may moderate your Clips accordingly in the Clips Manager.
Will Subscriber Streams stop me from completing my Affiliate “Path to Partner” Achievement?
No, we understand that by broadcasting Subscriber Streams your overall CCU may be lower. As such, we do not wish to penalize Affiliates that wish to create custom content for their loyal subscribers.
Subscriber Streams are available now to Partners and Affiliates who meet the requirements above. Check it out on your dashboard, or visit the help page for more information.
Twitch Extensions create new ways to bring Twitch streamers and viewers together, to create amazing content, and to connect games to a live broadcast. But like any new technology, it can feel overwhelming to start using it.
I’m Breci, a member of the Twitch Developer community, I currently work as a full-stack developer, and I specialize in interactive experiences.
In this article, I will share what I’ve learned when making Twitch Extensions, how they are made, and how you can use Twitch tools to reduce hosting costs, improve scaling, and engage streamers and viewers in your work.
If this is your first time working with Twitch Extensions, you should check out the Getting Started first and install the Developer Rig.
Extensions are webpages
If you look at the Getting Started page for Twitch Extensions, you will see this information: “Extensions are programmable, interactive overlays and panels, which help broadcasters interact with viewers.”
It can be said differently, “Extensions are static webpages displayed on top of or entirely below the video.”
With that in mind, you can easily create your first Extension using HTML/CSS/JS, like any other website. And, of course, you can use frameworks like React, Vue, Angular, etc. to build your Extensions.
Please note that the pages need to be static webpages; you can’t use server-side rendering.
You can find a minimal Twitch Extension here:
Use the right Extensions types
There are three types of Extensions: panel, video component, and video overlay.
Each Extension type has certain advantages and limitations, so consider these as you think about what type of Extension you want to build.
Panel
The panel Extension lives under the stream and can be popped out if the viewer wants to.
To see them, viewers have to scroll down.
They should mainly be used for informative content that requires little interaction or content totally separated from the stream.
Three can be active at the same time.
Video component
The video component Extension lives on top of the stream and inside of an Extensions Sidebar on the channel page.
They can take all the interactive space on the video player, but you can take less space if you want, and they have a transparent black background.
These Extensions will be minimized when the viewers join the stream.
They should be used for specific use cases that bring complementary or interactive content.
Two can be active at the same time.
Video overlay
The video overlay Extension lives on top of the stream; it covers the whole video player.
These Extensions will be directly visible when the viewer joins the stream.
They should be used for content that will go hand in hand with the broadcast like game integrations.
One can be active at a time.
Choosing the right type impacts engagement. Moving my Extension Live Request from a panel to a video component doubled the engagement, because it was meant to be interactive and complementary to the stream.
The JavaScript helper is your new best friend
When building Twitch Extensions, you will need to use the JavaScript helper.
It is a small library, provided by Twitch, that must be imported on your Extension.
With it, you can access all the useful information from the current user and your Extension. You can also trigger functionality like asking the user to share their identity, follow a channel, and trigger Bits transaction. You can even receive messages from the Extension or react to changes in the stream, allowing you to adapt the content of your Extension appropriately.
Store data with the Configuration Service
Let’s talk about saving the data. For example, you want to display some messages that can be customized by the streamer.
You could use a database for this, but you will have to set up an API and the database as well as manage scaling and the costs associated with it.
Using the Twitch Configuration Service in my Extension Quests allowed me to remove all costs involved in the project and focus on the concept without having to worry about costs.
The Configuration Service is a free service that allows developers to store data hosted by Twitch and access it directly from their Extension without the need for a backend.
This service offers three segments where you can store data:
broadcaster: data is shared only on the channel of the broadcaster and can be set from the JavaScript helper by the broadcaster or from an API endpoint. Each channel has its own segment.
developer: data is shared only on the channel of the broadcaster and can only be set from an API endpoint. Each channel has its own segment.
global: data is shared with all the channels using the Extension and can only be set from an API endpoint. There is only one for all the channels of your Extension.
You can store up to 5KB of data per segment.
For global data, like maintenance status, or certain configurations, you should use the global segment.
If you want to handle more data, you will need to have your own data storage with a backend in front of it to protect it.
A broadcaster with a bit of experience in programming could change the content of his broadcaster segment easily. To set up things like exclusive features, you should use the developer segment.
PubSub messages help with scaling
You may be wondering: How can I start a poll when the broadcaster hits a button? Do I have to add a WebSocket connection for every user?
You could… Or you can just use the Twitch Extension PubSub. It allows you to send messages to the users of your Extension without having to manage all the scaling of WebSocket or do massive polling from each client. Twitch already manages a PubSub system for you.
With this system, you can send PubSub messages to two targets:
broadcast: to all the users of a channel.
global: to all the users of your Extension, but can only be sent from an Extension Backend Service (EBS), which is simply the backend of your application, and you are responsible for hosting it and creating it if you need one.
As an example with this system, a broadcaster could press a button that triggers a PubSub message to all viewers and make text appear on the stream.
Note: You can only send up to 5KB of data and one PubSub per second, per channel.
Engage viewers with Bits
Bits are a virtual good that viewers can use to celebrate and support streamers on Twitch. As a developer, you can enable your Extension so that viewers can use Bits for everything from getting on leaderboards to playing sounds or messages directly on stream, and even influencing gameplay.
Each time a viewer uses Bits in your Extension is an opportunity to engage a stream by displaying visual feedback and showing viewers more ways that they can interact with the stream.
You can listen to Bits transactions in two ways:
Inside the Extension
twitch.ext.bits.onTransactionComplete( transaction => { if ( transaction.initiator === ‘CURRENT_USER’){ // do personalized feedback } else { // do generic feedback } }
From your EBS, using Webhooks
You can then send a PubSub message to your Extension or to a video source overlay.
Note: Bits transaction broadcast does not count in the Twitch Extension PubSub rate.
Let Streamers choose the Bits value
There is no “premade” way to allow streamers to set their own Bits value for a feature in the Extension.
When using Bits in your Extension, you have to create Bits products. They are used to define the possible Bits transaction in your Extension. But, you can create several of them and use them to allow multiple values.
For example, you can create:
value100: 100 Bits
value250: 250 Bits
value500: 500 Bits
And the streamer can simply choose one of them. You could have 50 possible values or two; it is up to you.
Some you might need more information than what the JavaScript helper provides. Since your Extension is a webpage, you can call Twitch’s API directly from it.
Do you want to deactivate your panel Extension when the stream is offline? Check it directly from the API on your Extension using the Streams endpoint with the channelId of the current channel.
window.Twitch.ext.onAuthorized(auth => { const url = `https://api.twitch.tv/helix/streams/id=${auth.channelId}`; const fetchData = { method: “GET”, headers: { “Client-ID”: “YourExtensionClientIdHere” } }; fetch(url,fetchData) .then(resp => resp.json()) // Transform the data into json .then(data => { if (data.data && data.data.length) { // Display extension } else { // Show offline message } }); });
If you have an EBS, make sure to always check server-side the validity of the data sent by your users.
Help viewers notice your Extension
Twitch Extensions are fairly new, so some viewers don’t yet know how to interact with them.
For video overlay Extensions, you might want to engage viewers by showing them they can interact with something on the stream. The best time to do this is when viewers move the mouse on top of the video player, because it means the viewer might not be 100 percent focused on the content in the stream. This is a great opportunity to create a nice call to action and/or animations to engage and educate the viewer about the Extension.
One way to do it is to use the arePlayerControlsVisible from the onContext callback
twitch.ext.onContext( context =>{ if (context.arePlayerControlsVisible) { // display information } else { // hide information } }
Titatitutu playing Trackmania, showing an example of helping viewers notice an Extension
Your Extension can — and should — be lazy
Your Extension will not be the primary content of the stream; it will complement it. Viewers will first come for the streamer, then use your work.
With that in mind, you don’t have to display your Extension as fast as possible like a regular website. There will be a bit of buffering before the live feed starts, the viewers will first focus on the content of the stream, then on your Extension. This gives you a lot of time to gather all the necessary data and display it nicely for the viewers.
I recommend you check out this talk by Karl Patrick from TwitchCon 2018 Developer Day to learn more about how to set up design patterns for Twitch scale.
Conclusion
I hope my experiences and learnings building Twitch Extensions help you get started. Extensions are a new paradigm in live interactive content, and I hope to see many of you joining this fun journey!
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Einwillligung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.