# Twitch

Twitch provides APIs and extension tools for developers to build Twitch integrations.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Reflecting On A Decade Of Content Creation

DevFeed: [Reflecting On A Decade Of Content Creation](<https://devfeed.tech/articles/reflecting-on-a-decade-of-content-creation-22831.md>)

Original publisher: [Read original article](<http://androidessence.com/reflecting-on-a-decade/>)

Author: Adam McNeilly

Published: 2025-09-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Android Essence](<https://devfeed.tech/sources/android-essence.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [community](<https://devfeed.tech/tags/community.md>), [content-creation](<https://devfeed.tech/tags/content-creation.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

The author reflects on ten years of publishing content through AndroidEssence and other developer platforms. The article describes learning Android through shared community resources and a continuing goal of making Android content accessible to developers at all skill levels.

### Source excerpt

Ten years ago today, I published my first blog post. There's something special about looking back an entire decade at an achievement like that. A chance to reflect on what my life was like then, the motivations that got me into writing, and where I am today as a result. It has been an honor to learn in public over these last ten years, whether that be here on AndroidEssence, on Twitch, on YouTube, at Droidcon, or the countless number of meetups, hackathons, and other events that have enabled me to connect with the amazing Android community.

## Peter Yang's 10 rules for making products that customers love

DevFeed: [Peter Yang's 10 rules for making products that customers love](<https://devfeed.tech/articles/peter-yang-s-10-rules-for-making-products-that-customers-love-10004.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/peter-yangs-10-rules-for-making-products-that-customers-love/>)

Author: Peter Yang

Published: 2024-01-30T00:00:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Product Management](<https://devfeed.tech/topics/product-management.md>), [Meta](<https://devfeed.tech/topics/meta.md>), [Reddit](<https://devfeed.tech/topics/reddit.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>)

Tags: [career](<https://devfeed.tech/tags/career.md>), [customers](<https://devfeed.tech/tags/customers.md>), [insights](<https://devfeed.tech/tags/insights.md>), [management](<https://devfeed.tech/tags/management.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [product](<https://devfeed.tech/tags/product.md>), [product-sense](<https://devfeed.tech/tags/product-sense.md>), [skills](<https://devfeed.tech/tags/skills.md>)

### AI overview

Peter Yang presents ten lessons on product management, emphasizing continuous growth in product sense, empathy for customers, creativity, and disciplined product craft.

### Source excerpt

Product lead Peter Yang taps into his decade-plus career to explain why staying focused on the craft is a product manager's superpower.

## Layoffs in Responsible AI Teams

DevFeed: [Layoffs in Responsible AI Teams](<https://devfeed.tech/articles/layoffs-in-responsible-ai-teams-36956.md>)

Original publisher: [Read original article](<https://shostack.org/blog/responsible-ai-layoffs/>)

Author: Adam

Published: 2023-04-21T00:00:00Z

Content type: opinion

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [responsible-ai](<https://devfeed.tech/topics/responsible-ai.md>), [ai-ethics](<https://devfeed.tech/topics/ai-ethics.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-ethics](<https://devfeed.tech/tags/ai-ethics.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [responsible-ai](<https://devfeed.tech/tags/responsible-ai.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

This opinion examines layoffs in responsible AI teams at companies including Microsoft and Twitch. It argues that ethical AI work may need to become more actionable for software development, while also noting the need for transparency, accountability, and regulation of AI systems.

### Source excerpt

Some inferences from layoffs in responsible AI teams

## Leading a dream team: A manager's guide to unlocking your team's potential

DevFeed: [Leading a dream team: A manager's guide to unlocking your team's potential](<https://devfeed.tech/articles/leading-a-dream-team-a-manager-s-guide-to-unlocking-your-team-s-potential-9795.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/how-to-get-the-most-out-of-teams/>)

Author: Suzanne LaBarre

Published: 2023-03-15T00:00:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Product Management](<https://devfeed.tech/topics/product-management.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>)

Tags: [guide](<https://devfeed.tech/tags/guide.md>), [management](<https://devfeed.tech/tags/management.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [projects](<https://devfeed.tech/tags/projects.md>), [series](<https://devfeed.tech/tags/series.md>), [tips-and-tricks](<https://devfeed.tech/tags/tips-and-tricks.md>)

### AI overview

This article offers practical guidance for people managers on organizing and motivating teams. It recommends helping employees define and narrow their priorities, connecting goals to strategic initiatives, making intended impact concrete and measurable, and limiting meetings so teams have more time for focused work and collaboration.

### Source excerpt

As a people manager, you have the power to set the tone for your team and create the right conditions for success. In this three-part series, we'll focus on the unique challenges (and opportunities!) people managers face today, and provide tips and tricks on how to solve them. For this installment, we'll look at some simple tactics and tools to organize and motivate teams.

## Kibeth Codes Twitch Highlights: Exploring Jetpack Compose in Habitica

DevFeed: [Kibeth Codes Twitch Highlights: Exploring Jetpack Compose in Habitica](<https://devfeed.tech/articles/kibeth-codes-twitch-highlights-1-32065.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/kibeth-codes-twitch-highlights-1/>)

Published: 2022-03-02T19:38:36Z

Content type: article

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [App](<https://devfeed.tech/topics/app.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [To-Do](<https://devfeed.tech/topics/todo.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [talk](<https://devfeed.tech/tags/talk.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

Kibeth Codes is a Twitch stream exploring how to add Jetpack Compose to the open source Habitica habit-tracking and to-do app. The post introduces a selection of stream highlights.

### Source excerpt

To practise for live speaking and to explore how to add Jetpack Compose to an existing open source app, I start a twitch stream as kibethcodes. The app I chose to work on is Habitica, a habit tracking/ToDo app that saw it's first commit in 2015. Streaming Tuesdays at 19:00 UTC+2 Here are a selection of highlights of the twitch stream.

## trivago Tech Week 2021 in Review

DevFeed: [trivago Tech Week 2021 in Review](<https://devfeed.tech/articles/trivago-tech-week-2021-in-review-28014.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2021-10-27-trivagotechweek2021hybridedition/>)

Author: Andreea Conciu-Ruse People person; Cat Lady; Project Manager @ trivago Linkedin profile

Published: 2021-10-27T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Streaming](<https://devfeed.tech/topics/streaming.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [zoom](<https://devfeed.tech/topics/zoom.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [events](<https://devfeed.tech/tags/events.md>), [gaming](<https://devfeed.tech/tags/gaming.md>), [hybrid](<https://devfeed.tech/tags/hybrid.md>), [music](<https://devfeed.tech/tags/music.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [talks](<https://devfeed.tech/tags/talks.md>), [tech](<https://devfeed.tech/tags/tech.md>), [twitch](<https://devfeed.tech/tags/twitch.md>), [virtual-event](<https://devfeed.tech/tags/virtual-event.md>), [zoom](<https://devfeed.tech/tags/zoom.md>)

### AI overview

A review of trivago Tech Week 2021, a hybrid event featuring technical talks, exchange forums, guest speakers, gaming, and live music. The article describes how presentations and social activities were made available to both remote and on-campus participants.

### Source excerpt

In the middle of summer 2021, we hosted one of our favourite annual events of the year - trivago Tech Week! This year's tech week had a new, hybrid format, featuring a wide variety of talks and ...

## Tasks Of Affirmation: A New Twitch Live Stream Series

DevFeed: [Tasks Of Affirmation: A New Twitch Live Stream Series](<https://devfeed.tech/articles/tasks-of-affirmation-a-new-twitch-live-stream-series-22843.md>)

Original publisher: [Read original article](<http://androidessence.com/toa-twitch-series/>)

Author: Adam McNeilly

Published: 2021-09-02T00:00:00Z

Content type: article

Language: en

Sources: [Android Essence](<https://devfeed.tech/sources/android-essence.md>)

Topics: [To-Do](<https://devfeed.tech/topics/todo.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [GitHub Issues](<https://devfeed.tech/topics/github-issues.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [github](<https://devfeed.tech/tags/github.md>), [github-issues](<https://devfeed.tech/tags/github-issues.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

The author announces a new Twitch live-stream series, Tasks Of Affirmation, focused on building a more supportive and compassionate to-do list application. The streams will document Android development in real time, including learning, debugging, and project organization with GitHub Projects and GitHub Issues.

### Source excerpt

In the late summer of 2020, I began live streaming on my Twitch channel. We started off by building an Android Study Guide application. The purpose of the application was to build something people would be interested in using, while also taking the opportunity to build an application out in the open. For a number of reasons, discussed in the latest video, I've decided to sunset that project and begin a new live stream series: Tasks Of Affirmation.

## How to Build a Twitch Bot Using TMI.JS (a moderator bot)

DevFeed: [How to Build a Twitch Bot Using TMI.JS (a moderator bot)](<https://devfeed.tech/articles/how-to-build-a-twitch-bot-using-tmi-js-a-moderator-bot-10682.md>)

Original publisher: [Read original article](<https://technotim.com/posts/twitch-bot/>)

Author: Techno Tim

Published: 2020-05-03T14:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Bot](<https://devfeed.tech/topics/bot.md>), [API](<https://devfeed.tech/topics/api.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bots](<https://devfeed.tech/tags/bots.md>), [channel](<https://devfeed.tech/tags/channel.md>), [chat](<https://devfeed.tech/tags/chat.md>), [coding](<https://devfeed.tech/tags/coding.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-portal](<https://devfeed.tech/tags/developer-portal.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [js](<https://devfeed.tech/tags/js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [npm](<https://devfeed.tech/tags/npm.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [quick-start](<https://devfeed.tech/tags/quick-start.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [token](<https://devfeed.tech/tags/token.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

A video tutorial demonstrates how to build a Twitch moderator bot with TMI.JS, covering developer portal setup, OAuth scopes, access tokens, JavaScript, NodeJS, and NPM. It also explains inviting the bot to a channel and moderating chat.

### Source excerpt

Let's build a bot! Not a bad bot like a view bot, but bot for good.Let's build a Twitch moderator bot using tmi.js! The Twitch API is powerful and and already has lots of great bots however no bot has the flexibility of creating your own! In this video I will show you how to build a Twitch bot using TMI.JS from start to finish.You'll see how to use the developer portal, set up oauth, set the...

## ThisEmoteDoesNotExist: Training a GAN for Twitch Emotes

DevFeed: [ThisEmoteDoesNotExist: Training a GAN for Twitch Emotes](<https://devfeed.tech/articles/thisemotedoesnotexist-training-a-gan-for-twitch-emotes-20454.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/thisemotedoesnotexist-training-a-gan-for-twitch-emotes-a742b6354b73?source=rss----3ae745429979--engineering>)

Author: Avery Gnolek

Published: 2019-07-24T22:05:46Z

Content type: tutorial

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Deep learning](<https://devfeed.tech/topics/deep-learning.md>), [Keras](<https://devfeed.tech/topics/keras.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [Python](<https://devfeed.tech/topics/python.md>), [pixel](<https://devfeed.tech/topics/pixel.md>)

Tags: [dataset](<https://devfeed.tech/tags/dataset.md>), [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [keras](<https://devfeed.tech/tags/keras.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [neural-networks](<https://devfeed.tech/tags/neural-networks.md>), [python](<https://devfeed.tech/tags/python.md>), [training](<https://devfeed.tech/tags/training.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

A developer describes building a progressive-growing GAN for Twitch emotes as a personal machine-learning project. The article covers scraping roughly 2 million Twitch emote assets, implementing a proof-of-concept GAN with Keras, and training it on a random 200,000-image sample.

### Source excerpt

The idea for this project began when a coworker and I were talking about NVIDIA's photo-realistic generated human faces using StyleGAN and they mentioned "I wish someone made one of those for Twitch emotes." I had always wanted to take some time to learn more about convolution neural networks and was in the middle of a machine learning project for work, so it seemed like trying to build this would be a quick and relevant personal project. The original plan (with my time estimates): Scrape all of the Twitch emote image assets (1 day) Write a progressive growing GAN implementation using Keras as a proof of concept (1 week) Adapt the emote dataset for use with a real research-caliber GAN implementation (1-2 days) Train the GAN on the emote dataset (1 day) 1 . Scrape all of the emote image assets This part of the project was actually quite straightforward. Twitch stores all of the emote images on a CDN using a monotonically increasing numeric emote_id. Each emote is available in three different sizes (1.0, 2.0, 3.0) corresponding to the resolutions of 28x28, 56x56, and 112x112. emoticons/778927/1.0emoticons/778927/2.0emoticons/v1/778927/3.0 I wrote a quick python scraper which would go through ~2 million emote_ids of three different sizes and download the images locally. Even at a modest 200 requests per second, this was able to finish overnight. In fact, I think the limiting factor for the speed of this step was actually writing the image files to my HDD, not the network requests themselves. So far, I was right on track with my time estimate. 2. Write a progressive growing GAN implementation using Keras as a proof of concept As I had no experience with CNNs or deep learning before this project, I wanted to at least attempt to write a progressive growing GAN myself as a way to learn before switching to an existing implementation. As Twitch emotes are not even power of two sizes, it was not possible to exactly replicate the 4x4 pixel to 128x128 pixel growing architecture

## Go memory ballast: How I learnt to stop worrying and love the heap

DevFeed: [Go memory ballast: How I learnt to stop worrying and love the heap](<https://devfeed.tech/articles/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap-20449.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap-26c2462549a2?source=rss----3ae745429979--engineering>)

Author: Ross Engers

Published: 2019-04-10T21:44:55Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [API](<https://devfeed.tech/topics/api.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [nginx](<https://devfeed.tech/topics/nginx.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [latency](<https://devfeed.tech/tags/latency.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [memory](<https://devfeed.tech/tags/memory.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [programming](<https://devfeed.tech/tags/programming.md>), [server](<https://devfeed.tech/tags/server.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

A Twitch engineering article explains how a small Go memory-ballast change reduced CPU utilization on API frontend servers by about 30% and peak-load 99th-percentile API latency by about 45%. It describes the Visage gateway, traffic spikes, and the investigation behind the optimization.

### Source excerpt

Go memory ballast: How I learned to stop worrying and love the heap I'm a big fan of small code changes that can have large impact. This may seem like an obvious thing to state, but let me explain: These type of changes often involve diving into and understanding things one is not familiar with. Even with the most well factored code, there is a maintenance cost to each optimization you add, and it's usually (although not always) pretty linear with the amount of lines of code you end up adding/changing. We recently rolled out a small change that reduced the CPU utilization of our API frontend servers at Twitch by ~30% and reduced overall 99th percentile API latency during peak load by ~45%. This blog post is about the change, the process of finding it and explaining how it works. Setting the stage We have a service at Twitch called Visage, that functions as our API frontend. Visage is the central gateway for all externally originating API traffic. It is responsible for a bunch of things, from authorization to request routing, to (more recently) server-side GraphQL. As such, it has to scale to handle user traffic patterns that are somewhat out of our control. As an example, a common traffic pattern we see is a "refresh storm." This occurs when a popular broadcaster's stream drops due to a blip in their internet connectivity. In response, the broadcaster restarts the stream. This usually causes the viewers to repeatedly refresh their pages, and suddenly we have a lot more API traffic to deal with. Visage is a Go application (built with Go 1.11 at the time of this change) that runs on EC2 behind a load balancer. Being on EC2 it scales well horizontally, for the most part. However, even with the magic of EC2 and Auto Scaling groups, we still have the problem of dealing with very large traffic spikes. During refresh storms, we frequently have surges of millions of requests over a few seconds, on the order of 20x our normal load. On top of this, we would see API latency de

## How Twitch Addresses Scalability and Authentication

DevFeed: [How Twitch Addresses Scalability and Authentication](<https://devfeed.tech/articles/how-twitch-addresses-scalability-and-authentication-20451.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/how-twitch-addresses-scalability-and-authentication-718d6ed3c471?source=rss----3ae745429979--engineering>)

Author: Eugene Pivovarov

Published: 2019-03-15T19:13:30Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [OAuth 2.0](<https://devfeed.tech/topics/oauth2.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [identity-management](<https://devfeed.tech/tags/identity-management.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [latency](<https://devfeed.tech/tags/latency.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [oauth-2-0](<https://devfeed.tech/tags/oauth-2-0.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [tls](<https://devfeed.tech/tags/tls.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

This article explains how Twitch's Identity team addressed authentication scalability and performance. It describes reducing login-form latency through prefetching and lazy loading, and reducing downstream validation workload by exchanging OAuth 2.0 access tokens for short-lived JWTs containing user information, scopes, and a digital signature.

### Source excerpt

Curious how Twitch Identity services addresses scalability and performance challenges related to authentication? Last Tuesday, the Twitch Identity team -- which helps Twitch users create and manage their digital identity and owns the services that provide authentication, authorization, and user metadata management -- hosted a Meetup.com event to explain just that. But we're recapping here just for you! First challenge: Login form load The goal of authentication is to verify who the user is. In a typical login flow, the user supplies a password along with a username and the service validates the credentials. Login user interface The Twitch Login form used to load very slowly, as long as 10 seconds in some Asian and Pacific countries. The browser had to make a DNS request for the authentication backend, initiate a TLS connection to authentication service, make a request to load the page, and then make additional requests for more assets. Altogether, there were five round trips and over 150 KB of data transfer. To improve load latency, the team considered a few options: prefetching, connection reuse, inlining, and lazy loading. Ultimately, the solution relies mostly on prefetching by making the login modal part of the main page, but it employs lazy load for fetching heavy assets. As a result, the median load latency dropped as much as 20x from 4.1 sec to 0.2 sec. Second challenge: User session validation At the end of the login flow, the browser obtains a long-lived OAuth 2.0 access token and stores it in a cookie. This token is required for subsequent requests to the Twitch API and the corresponding downstream services. If each service had to validate the OAuth token directly against the token dispensary, the latter would need to handle calls from multiple services for every API request. To reduce the workload, the Identity team implemented an approach that employs self-contained JSON Web Tokens (JWT). Login and request flow In this approach, before forwarding the reque

## How VP9 delivers value for Twitch's esports live streaming

DevFeed: [How VP9 delivers value for Twitch's esports live streaming](<https://devfeed.tech/articles/how-vp9-delivers-value-for-twitch-s-esports-live-streaming-20450.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/how-does-vp9-deliver-value-for-twitchs-esports-live-streaming-35db26f6322f?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2018-12-19T21:12:17Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [fpga](<https://devfeed.tech/topics/fpga.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Playback](<https://devfeed.tech/topics/playback.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [compression](<https://devfeed.tech/tags/compression.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fpga](<https://devfeed.tech/tags/fpga.md>), [h-264](<https://devfeed.tech/tags/h-264.md>), [live-streaming](<https://devfeed.tech/tags/live-streaming.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>), [videos](<https://devfeed.tech/tags/videos.md>), [vp9](<https://devfeed.tech/tags/vp9.md>)

### AI overview

This article explains how Twitch selected FPGA hardware for real-time VP9 encoding of premium esports and partner live streams. It discusses VP9's compression advantages and implementation challenges, and reports at least 25% bitrate savings compared with the highest-quality H.264 encoders used in Twitch's production.

### Source excerpt

By: Akrum Elkhazin, Video Algorithm Architect, NGCodec, akrum.elkhazin@ngcodec.com Avinash Ramachandran, Video Software Architect, NGCodec, avinash.ramachandran@ngcodec.com Roshan Baliga, Product Manager, Google, rdb@google.com Jai Krishnan, Product Manager, Google, jaikk@google.com Tarek Amara, Senior Video Specialist, Twitch, amatarek@twitch.tv Alex Converse, Senior Software Engineer, Twitch, alexconv@twitch.tv Yueshi Shen, Principal Research Engineer, Twitch, yshen@twitch.tv Summary: VP9 will soon help Twitch offer a better viewing experience for premium esports and partner channels Video compression is the key to successful delivery of digital video across various applications like broadcast, teleconference, surveillance, and online streaming services. Since 2003 (i.e., 15 years ago), H.264 has been the state-of-the-art video compression format and has enabled HDTV, Blu-ray Disc, Internet video websites (e.g., YouTube, Twitch), and so on. Nevertheless, according to Twitch's recent analysis, H.264 has reached its compression performance limit, particularly for real-time encoding of gaming content at the HD resolution (1080p60). On the other hand, newer-generation video standards, namely VP9, HEVC, and AV1, show significant compression gain, which can bring considerable commercial benefits to content platforms (e.g., offering viewers better video quality, reducing the video loading time and the buffering rate, increasing the customer reach, decreasing the IP transit cost). Currently, although decoding and playback of VP9 video are widely supported on devices and browsers used by Twitch's audience, encoding gaming video content with a high efficiency and real-time performance is a substantial challenge due to the high complexity of VP9. Through a rigorous feasibility study, we have eventually selected FPGA as the hardware platform for real-time VP9 encoding and are deploying it to broadcast our premium eSports and partner channels in the near future (please watch t

## Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I

DevFeed: [Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I](<https://devfeed.tech/articles/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-i-20452.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-i-489c1c125f28?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2017-10-10T18:40:03Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [stream-processing](<https://devfeed.tech/topics/stream-processing.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [http](<https://devfeed.tech/tags/http.md>), [live-streaming](<https://devfeed.tech/tags/live-streaming.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [stream-processing](<https://devfeed.tech/tags/stream-processing.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [transcoder](<https://devfeed.tech/tags/transcoder.md>), [twitch](<https://devfeed.tech/tags/twitch.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This first part of a two-part series explains Twitch's live video processing pipeline and compares using FFmpeg with Twitch's in-house TwitchTranscoder. It describes how RTMP uploads are converted into multiple-bitrate HLS variants and outlines the live transcoding requirements that FFmpeg meets or does not meet.

### Source excerpt

By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer, chihchil@twitch.tv Yueshi Shen, Principal Research Engineer, yshen@twitch.tv Special thanks go to Christopher Kennedy, Staff Video Engineer at Crunchyroll/Ellation John Nichols, Principal Software Engineer at Xilinx, jnichol@xilinx.com for their information on FFmpeg and reviewing this article. Note: This is the first part of a 2-part series. Please read part 2 after finishing this article. Background Twitch is the world's leading live streaming platform for video games, esports, and other emerging creative content. Every month, more than 2.2 million unique content creators stream or upload video on our website. At its peak, Twitch ingests tens of thousands of concurrent live video streams and delivers them to viewers across the world. Figure 1 depicts the architecture of our live video Content Delivery Network (CDN) which delivers tens of thousands of concurrent live streams internationally. Figure 1: Architecture of Twitch's Live Video CDN Twitch, like many other live streaming services, receives live stream uploads in Real-Time Messaging Protocol (RTMP) from its broadcasters. RTMP is a protocol designed to stream video and audio on the Internet, and is mainly used for point to point communication. To then scale our live stream content to countless viewers, Twitch uses HTTP Live Streaming (HLS), an HTTP-based media streaming communications protocol that most video websites also use. Within the live stream processing pipeline, the transcoder module is in charge of converting an incoming RTMP stream into the HLS format with multiple variants (e.g., 1080p, 720p, etc.). These variants have different bitrates so that viewers with different levels of download bandwidth are able to consume live video streams at the best possible quality for their connection. Figure 2 depicts the input and output of the transcoder module in our live video CD

## What I Learned from Live-Streaming Creative Work on Twitch

DevFeed: [What I Learned from Live-Streaming Creative Work on Twitch](<https://devfeed.tech/articles/live-streaming-my-designs-working-title-touchlab-38116.md>)

Original publisher: [Read original article](<https://touchlab.co/2016-2-live-streaming-need-title>)

Published: 2016-03-01T17:10:55Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [creative](<https://devfeed.tech/tags/creative.md>), [design](<https://devfeed.tech/tags/design.md>), [featured](<https://devfeed.tech/tags/featured.md>), [hand-lettering](<https://devfeed.tech/tags/hand-lettering.md>), [live-streaming](<https://devfeed.tech/tags/live-streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

The article reflects on a live-streamed Design Notes podcast with hand-lettering artist Dina Rodriguez and the author's early experience streaming creative work on Twitch. It discusses sharing the creative process, teaching and learning with a live audience, and receiving feedback and encouragement.

### Source excerpt

For the first Design Notes podcast of 2016, I interviewed artist Dina Rodriguez of LetterShoppe. But this episode of Design Notes wasn't like most...

## DDNet Live: Twitch spectates an online game

DevFeed: [DDNet Live: Twitch spectates an online game](<https://devfeed.tech/articles/ddnet-live-twitch-spectates-an-online-game-30812.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/ddnet-live/>)

Published: 2016-01-09T23:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Server](<https://devfeed.tech/topics/server.md>), [Nim](<https://devfeed.tech/topics/nim.md>)

Tags: [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [intel](<https://devfeed.tech/tags/intel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [livestream](<https://devfeed.tech/tags/livestream.md>), [nim](<https://devfeed.tech/tags/nim.md>), [server](<https://devfeed.tech/tags/server.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

The article describes setting up a continuous DDNet livestream on Twitch from Linux using FFmpeg, a low-power J1900 home server, and a virtual display. It also explains using Twitch chat and DDNet FIFO command input so viewers can choose which players to spectate.

### Source excerpt

Last night I had an idea and implemented it, soo let's see what will happen. But first, the idea: Have a livestream [1] of DDNet running non-stop [2] that always shows some interesting [3] players on the server. The resulting livestream is running on Twitch. All the scripts are on Github 1. Livestream It's surprisingly simple to livestream from Linux to Twitch. Only FFmpeg is needed: #!/bin/sh INRES="1280x720" # input resolution FPS="30" # target FPS GOP="60" # i-frame interval, should be double of FPS, GOPMIN="30" # min i-frame interval, should be equal to fps, THREADS="2" CBR="2000k" # constant bitrate (should be between 1000k - 3000k) QUALITY="ultrafast" # one of the many FFMPEG preset AUDIO_SRATE="44100" AUDIO_CHANNELS="2" # 1 for mono output, 2 for stereo AUDIO_ERATE="96k" # audio encoding rate SERVER="live-fra" # http://bashtech.net/twitch/ingest.php for list source ./secret.sh ffmpeg -v 0 -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \ -f alsa -i pulse -f flv -ac $AUDIO_CHANNELS \ -b:a $AUDIO_ERATE -ar $AUDIO_SRATE \ -vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR \ -minrate $CBR -maxrate $CBR -vf "format=yuv420p"\ -preset $QUALITY -acodec libmp3lame -threads $THREADS \ -strict normal -bufsize $CBR \ "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY" This works pretty well, but takes quite a bit of CPU on my old computer. So instead I wanted to run it on my new server with a Haswell-era J1900 CPU. Possible ways to improve performance: Use an OpenGL recorder instead of x11grab Get Intel Quick Sync Video working for hardware H264 encoding 2. Running Non-Stop My server is a small and cheap ASRock Q1900-ITX: The nice part is that it's passively cooled and quite power efficient, drawing only 5 Watts in idle. This machine has been running as my home server for quite some time, but barely gets any action. Let's change that! The X server starts without problems even without any monitors attached, the only thing that's left to do is increasing the framebuffer size so that ou