Twitch Feed Widget for Website. Free, Unlimited - Poper
Twitch Feed Widget

Twitch on any website.

Embed your live channel, VODs, and clips in 90 seconds with a real live-status indicator. Powered by the official Twitch Helix API. Free, no code.

No credit card required
14-day free trial
Cancel anytime

Trusted by 11,000+ brands

Timetics
Academie Digitale
Goldcast
nbcf
Seedstock
Wow
Linkxar
Gale Toyota
Skills
Rugby Sport
Lamp
Leaktronics
Steel
Theatre in Chicago
Globerto
Meetup
FYM
Zeben
Kraftix
IETraditionala
Meethires
Leadscrape
Happily
Timetics
Academie Digitale
Goldcast
nbcf
Seedstock
Wow
Linkxar
Gale Toyota
Skills
Rugby Sport
Lamp
Leaktronics
Steel
Theatre in Chicago
Globerto
Meetup
FYM
Zeben
Kraftix
IETraditionala
Meethires
Leadscrape
Happily
Free forever, paid plans from $19/mo

Try the live Twitch widget

Live demo, not a screenshot. Style it, brand it, embed it. The LIVE pulse you see here is what ships to your site.

From Twitch to your site

Your Twitch reviews. Now on your own domain.

Poper crawls the official Twitch review feed for your business and renders it inline on your website. Same reviews, your branding, your domain.

twitch.tv
Twitch.tv channel page for AcmePlays showing the purple Twitch logo, 24K subscribers, Twitch Partner badge, LIVE NOW indicator, 4 stream-tile thumbnails with viewer counts and game tags, recent VODs row, and 3 highlighted clips by Maya, Tom, and AïshaSource: TwitchOpen
Twitch.tv channel page for AcmePlays showing the purple Twitch logo, 24K subscribers, Twitch Partner badge, LIVE NOW indicator, 4 stream-tile thumbnails with viewer counts and game tags, recent VODs row, and 3 highlighted clips by Maya, Tom, and Aïsha
acmeplays.gg
AcmePlays streamer site at acmeplays.gg with hero Live every Tue/Thu/Sat 7PM EST and embedded Poper Twitch widget showing the same 3 clip highlights styled in deep teal and magenta brand palette, attributed to Twitch Partner with 30 minute auto-syncPoper widget live
AcmePlays streamer site at acmeplays.gg with hero Live every Tue/Thu/Sat 7PM EST and embedded Poper Twitch widget showing the same 3 clip highlights styled in deep teal and magenta brand palette, attributed to Twitch Partner with 30 minute auto-sync

Mockups for illustration. Pull your real Twitch Feed Widget: Embed Live Channels, VODs, and Clips on Any Site from Twitch and embed in 90 seconds.

How to use it

How to add Twitch to your website

Three steps. Under two minutes. No developer needed.

  1. 01

    Connect a channel, VOD, or clip

    Paste a Twitch channel URL, a VOD ID, or a clip slug. Poper resolves it through the official Twitch Helix API and pulls the right metadata in seconds.

    Poper widget builder showing the Twitch channel search input resolving AcmePlays to twitch.tv/acmeplays with 24K subscribers, a Twitch Partner badge, and a purple Connect button
  2. 02

    Pick a layout and brand it

    Choose Live Card, Channel Grid, VOD Wall, Clip Reel, Stream Schedule, or Multi-Channel Lobby. Tweak colors, fonts, the live-pulse indicator, and player chrome to match your site.

    Layout picker showing 6 Twitch widget layouts (Live Card, Channel Grid, VOD Wall, Clip Reel, Stream Schedule, Multi-Channel Lobby) with LIVE indicators plus a brand controls strip for colors, fonts, pulse style, and lite player
  3. 03

    Copy the snippet and embed

    Paste the one-line script tag into your site. Works on WordPress, Shopify, Wix, Squarespace, Webflow, Ghost, Framer, and 250+ platforms.

    One-line embed script tag for the Twitch feed widget shown in a code editor with a purple Copy button and Webflow, Framer, Carrd, Linktree, and Streamlabs platform badges

Works everywhere

Works with every website platform you already use

Drop-in install on WordPress, Shopify, Wix, Squarespace, Webflow, Framer, Ghost, and any HTML-friendly stack. No build step, no developer needed.

WordPress
Shopify
Wix
Squarespace
Webflow
Framer
Ghost
HTML

Plus 250+ other platforms via the embed snippet. If your site can render a <script> tag, it can render the Twitch Feed Widget: Embed Live Channels, VODs, and Clips on Any Site.

What you get with Poper Twitch Feed

Six things that matter when you are paying for a Twitch widget, not 30 features no one uses.

Real live-status indicator that flips on within 60 seconds of you going live

This is the killer feature for any Twitch embed and the one almost every other widget gets wrong. Most third-party Twitch widgets either never check live state, or check it once when the page loads and then forget, so visitors see a stale Offline badge while you are actually streaming. Poper polls /helix/streams every 60 seconds (every 30 seconds on Business) directly against the official Twitch Helix API and updates the live indicator client-side without a page reload. The result is a glowing red LIVE pulse the moment you go live, a viewer count that ticks in real time, the current category and game title pulled from your stream metadata, and a graceful fallback to your last VOD or top clip when you are offline. Visitors arriving at your site during a stream click straight into the embedded player. No other widget on this list does the polling correctly.

Live channels, VODs, and clips

Most Twitch widgets only embed the live player. Poper supports all three Helix primitives from the same widget config: live channel embed, VOD list (archive, highlight, and upload types), and curated clip reels. Switch between them without re-embedding the snippet on your site.

Multi-channel team feeds

Combine an entire esports roster into one lobby view with per-player live indicators. Built for orgs that need a single hub showing which players are streaming right now.

Brand-match styling

Colors, fonts, live-pulse style, badge shapes, custom CSS. Looks native to your site, not the generic purple Twitch chrome.

Lite player keeps Core Web Vitals green

Default mode loads only the thumbnail and a play button (under 6KB per channel). The full Twitch player iframe (which weighs 700KB+ and ships dozens of cookies) only loads when a visitor actually clicks play. No CLS, no LCP regression, no Lighthouse hit even with multiple channels on one page.

Clip curation and raid culture

Pull top clips of the day, top clips of the week, or hand-pick clip slugs for a curated reel. Highlight raid trains and subscriber-tier moments so visitors who missed the stream still get the best 30 seconds.

Use cases

Where Twitch Feed Widget: Embed Live Channels, VODs, and Clips on Any Site actually moves the needle

Four buyer types who get the most lift from embedding Twitch Feed Widget: Embed Live Channels, VODs, and Clips on Any Site on their site.

Gaming streamer setup with triple monitors showing chat, live gameplay with HUD and crosshair, and stream metrics, plus RGB-lit gaming PC tower and keyboard, where Twitch widget converts visitors into followers

Gaming streamers

Showcase your channel on a personal site or sponsor page. Live status pulse drives stream traffic, VOD wall captures the long tail, and clip reels convert first-time visitors into followers.

Creative streamer workspace with digital art tablet, paint brushes in jar, boom-arm microphone, and a live painting canvas in progress with sunset landscape brushstrokes, where Twitch widget anchors the portfolio

Creative streamers

Art and music creators streaming live painting, DJ sets, and producing on Twitch. Embed your schedule, highlight reels, and live-when-you-create indicator on your portfolio or store.

IRL streamer holding a handheld camera rig with sunset city skyline backdrop and portable boom mic, with embedded channel card showing AcmePlays IRL walking Tokyo live to 2,108 viewers

IRL and just-chatting streamers

Walking streams, travel vlogs, and personal-channel IRL broadcasts. Embed the live indicator and clip reel so fans always know where you are streaming from right now.

Esports team setup with 5 player desks in coordinated jersey colors (pink DPS, cyan tank, purple captain, gold support, green flex) at the ACME Esports Cup Finals stage with a #1 gold trophy in front

Esports teams

Build a team lobby that shows which roster members are live right now. Each player card carries its own live indicator, viewer count, and current game so fans always land on whoever is streaming.

Poper vs other Twitch widgets

Twitch ships its own free iframe, but it stops at one channel and never updates live state. Here is how Poper stacks up against the most common alternatives on what actually matters.

 Recommended
Poper
Twitch Embed
StreamElements
Restream
Free plan available
14-day trial
Live channel embed
Real-time live status indicator
Manual refresh
Paid only
VOD list (archive, highlight, upload)
Paid only
Clip reel embed
Paid only
Multi-channel team lobby
Paid only
Subscriber-only VOD support
OAuth required
Lite player (defers iframe until click)
Live status poll frequency
60s (30s on Business)
Manual
5 minutes
1 minute
Custom CSS / total design control
Paid only
Paid only
Pricing for unlimited channels
$19/mo (Starter)
Free
$15/mo+
$25/mo+
Bundled with popups, forms, quizzes

Comparison reflects publicly listed pricing and features as of 2026. Verify current details on each provider's site.

Real streamers. Real outcomes.

Gaming creators, esports orgs, music live-streamers, and IRL streamers who switched from native iframes and broken third-party widgets to Poper.

Poper has improved our website's user engagement! Since integrating Poper's personalized popups, we've seen a dramatic surge in conversions and user interactions. The platform's intuitive design makes creating and customizing popups a breeze, even for those with minimal tech skills. What truly sets Poper apart are its…
Jayson Ang
Jayson Ang
Singapore Property Swapper · Singapore Property Swapper
Fantastic app and support team, they are very quick to help and provide a solution or improvement to their product. Highly recommended!
Alex
Alex
CEO · AH
Poper has been a total lifesaver for our agency! As a digital marketing agency, we’re always juggling a million things at once. Poper has been a real game-changer in terms of streamlining our workflow and keeping track of all our clients’ campaigns. The ability to track all our clients’ websites from one place is a…
Idris Basir
Idris Basir
-

Pricing

Simple pricing. Free plan covers most websites.

Free forever for one widget. Upgrade only when you need faster sync, multiple instances, or to drop the watermark.

Free

Everything you need to ship the widget today.

$0forever
  • 1 widget instance
  • All layouts & customization
  • Brand-match styling
  • 6-hour sync cadence
  • Poper watermark
Start free
Most popular

Pro

Remove the watermark, faster sync, more widget instances.

$19/mo
  • Unlimited widget instances
  • 30-minute sync cadence
  • No Poper watermark
  • Custom CSS
  • Priority email support
  • Shoppable tagging
Start 14-day trial

Business

Multi-site, multi-account, white-label.

$49/mo
  • Multi-account combined feeds
  • Real-time sync
  • White-label embed
  • API access
  • Dedicated success manager
  • Custom SLA
Start 14-day trial

All plans include unlimited page views, no contracts, cancel anytime. Annual billing saves 20%.

Guide · 7 min read

The complete guide to embedding Twitch on your website

A twitch feed widget is how you turn Twitch watch time into website watch time. Twitch is the largest live streaming platform on the open internet, owned by Amazon since 2014, with more than 30 million daily active users tuning in for gaming, esports, music, and just-chatting content. But if visitors leave your site to watch on twitch.tv you lose the session, the cookie, and the next-page click. The right embed keeps the live experience happening on your domain while still using Twitch's CDN, official iframe player, and chat overlay. This guide walks through what actually matters when you choose and configure a Twitch widget in 2026: the Twitch Helix API and OAuth 2.0 client credentials, the difference between live, VOD, and clip embeds, real-time live-status polling, raid culture preservation, subscriber tier handling, and what the Twitch player iframe really costs in Lighthouse.

01

Live channel embed vs VOD list vs clip reel: which Helix primitive do you actually want

Twitch exposes three distinct content primitives through the official Helix API and each maps to a different job. A live channel embed drops the Twitch player iframe pointed at twitch.tv/yourname into your page, plays your live stream the moment you go live, and goes to a configurable offline state when you are not. This is the right primitive for a personal homepage, a tour site, or any place where the goal is to convert visitors into live viewers. A VOD list pulls past broadcasts via /helix/videos with type=archive (auto-saved broadcasts), type=highlight (creator-trimmed segments), or type=upload (uploaded files), respects the channel sort order, and auto-includes new VODs as you stream. This is the right primitive for a content library, a shoutcast archive, an esports match replay hub, or any place where the back catalogue matters more than the live moment. A clip reel pulls the most-played clips via /helix/clips, ranked by view count over the last 24 hours, 7 days, or 30 days. This is the right primitive for a sponsor page, a just-chatting personal site, or anywhere you want a 30-second hook to convert first-time visitors into followers. Picking correctly at the start saves you a re-embed cycle later, and Poper supports all three from the same widget config so you can switch primitives without rewriting your site code. There is also a fourth option worth knowing about: the Twitch schedule embed, which surfaces your stream calendar via /helix/schedule. This is the right addition for music streamers and DJs who do scheduled sets, where viewers want to know when to come back rather than what they missed.

02

The Twitch Helix API and OAuth 2.0 client credentials: what every widget builder gets wrong

Every Twitch widget on the market is gated by the same thing: the Helix API, which is the current Twitch developer API generation that replaced Kraken (deprecated in 2022). Helix uses OAuth 2.0 with two flow types. The client credentials flow is for app-level access to public data: live status, VOD lists, public clips, and game and category metadata. Tokens last 60 days and require a server-side client_id and client_secret that no widget can ship to the browser without leaking. The authorization code flow is for user-level access: subscriber-only VODs, follower lists, channel point redemptions, and any data scoped to a specific user account. Most third-party widgets either skip OAuth entirely (which means they hit unauthenticated endpoints with strict rate limits and dead within minutes) or ship the client_secret to the browser (which means anyone can steal the token and rate-limit your widget into oblivion). Poper handles every Helix call server-side. We resolve channel logins to user IDs once at connect time, then poll /helix/streams (1 point per call) for live status and /helix/videos (1 point per call) for the VOD list. The result is roughly 50x more headroom than a browser-based widget, plus we cache responses at the global CDN edge so visitors to your site never hit the Helix API directly. Helix rate limits are 800 points per minute per app on the client credentials flow, which means a Poper widget polling every 60 seconds for live status and every 6 hours for VOD lists costs about 3 to 4 points per minute. You will never come close to the limit.

03

Live status polling, autoplay restrictions, and the parent-domain requirement

The Twitch player iframe has three quirks that catch every widget builder by surprise the first time. First, autoplay is blocked by default in every modern browser unless the iframe is muted. Twitch returns a black player with an unmute prompt when autoplay is enabled with audio, which kills any embedded experience where the visitor expects sound on first frame. The fix is to default the player to muted=true, autoplay=true on first load and let visitors click to unmute, which Poper does by default. Second, the player iframe requires a parent= query parameter that lists the domain hosting the iframe. If your domain is example.com, the iframe must be loaded with parent=example.com or it will return a refused-to-display error. Custom subdomains, staging environments, and preview deployments all need their own parent values. Poper auto-injects the parent value from window.location.hostname so this never breaks across environments. Third, mobile playback uses a different player surface than desktop and requires playsinline=true to avoid the iOS native fullscreen takeover. Most third-party widgets ship the desktop iframe code on mobile, which is why so many Twitch embeds black-screen on iPhone. Poper detects mobile user agents and serves the playsinline-enabled mobile player. On the polling side, the Helix /streams endpoint is the source of truth for live status. A naive widget either never polls (so the live indicator stays stuck at whatever state was true on page load) or polls from the browser (which leaks the client_id, hits the unauthenticated rate limit, and dies within minutes). Poper polls server-side every 60 seconds on Pro and 30 seconds on Business, pushes the result to connected widgets via WebSocket, and falls back to a 60-second client poll if the WebSocket connection drops.

04

VOD types, clips, and how to handle subscriber-only content

The Helix /videos endpoint returns three video types and getting them wrong means missing half of a creator's content. Type=archive is the auto-saved broadcast Twitch creates whenever you stream, available for 14 days on free plans and 60 days for Twitch Partners and Affiliates. Type=highlight is a creator-trimmed segment of an archive that lives forever. Type=upload is a video file uploaded directly to Twitch (rare these days but still supported for music live-streamers re-uploading mastered sets). Poper renders all three by default and lets you filter by type per widget instance, so a music creator can show only uploads while an esports org shows only highlights. Subscriber-only VODs are a separate problem. Twitch Partners can mark VODs as subscriber-only, which means the public client-credentials flow returns them with a sub_only=true flag but no playable URL. To embed a sub-only VOD, the widget needs the authorization code flow with the user:read:subscriptions scope, which Poper handles via the channel owner's one-time OAuth connection. Visitors who are not subscribed see a paywall card with a Subscribe button linking to your Twitch channel. Visitors who are subscribed see the full embedded player with their tier badge displayed. The same flow handles tier 1, tier 2, and tier 3 subscriber benefits. Clips are the third primitive worth getting right. The /helix/clips endpoint returns up to 100 clips per call, sortable by view count over a configurable time window. Clips have unique slugs that survive forever even if the source VOD expires, which makes clip reels the most durable Twitch content type for a permanent embed. Poper auto-fetches the top clips by view count or lets you hand-curate slugs for an editorial reel. Each clip is a 30 to 60 second muxed MP4 served directly from Twitch's CDN, which means clip embeds load 4x faster than live channel embeds and have no parent-domain requirement.

05

What the Twitch iframe really costs in Lighthouse, and how to keep your score green

The default Twitch player iframe is one of the heaviest single resources you can put on a page. A single embedded channel pulls roughly 700KB of JavaScript on first load, sets multiple third-party cookies, blocks the main thread for several hundred milliseconds during initialization, and frequently regresses Largest Contentful Paint by 1.5 to 2.5 seconds. Embed a multi-channel team lobby with five players and you can lose 25 Lighthouse points before any other code runs. The fix is the lite-player pattern, which renders only the thumbnail (pulled from the Twitch /streams response or the channel preview image) and a play button overlay (under 6KB per channel) on initial load, and only swaps in the real Twitch iframe when the visitor clicks play. The same pattern works for VODs and clips. Poper ships lite mode as the default, so all the Twitch content you embed costs you no more LCP than the same number of static images. Visitors who click see the full Twitch player with chat overlay, quality controls, theatre mode, and every native feature included. Visitors who scroll past pay nothing. The performance difference between lite mode and standard iframe embeds is the difference between a 90+ Lighthouse score and a 65. There are three additional optimizations Poper applies on top of lite mode. First, channel thumbnails are served from static-cdn.jtvnw.net (Twitch's official CDN) and converted to WebP on the fly through our edge layer, which typically halves thumbnail weight versus the default JPEG. Second, the play-button overlay uses a single inline SVG instead of an image request, which saves a round trip per channel. Third, when a visitor does click play, the iframe is loaded with the muted=true playsinline=true autoplay=true parameters and the correct parent= value, which avoids the autoplay block, the iOS fullscreen takeover, and the parent-domain refusal in one shot. The combined result is that a page with a five-channel Twitch team lobby in lite mode often outperforms a page with one standard Twitch embed on every Core Web Vitals metric. If page speed matters to your SEO, this is the single biggest reason to choose carefully which Twitch widget you embed.

Quick reference

What is Twitch Feed Widget: Embed Live Channels, VODs, and Clips on Any Site?

A Twitch feed widget is an embeddable script that pulls live channels, VODs, and clips from Twitch through the official Helix API and renders them on a website with real-time live-status polling, custom branding, and lite-player performance to keep Core Web Vitals green.

Key facts

  • Twitch has more than 30 million daily active users as of 2026 and is owned by Amazon since 2014, making it the largest live streaming platform on the open web.
  • The Twitch Helix API is the current developer API generation, replacing the deprecated Kraken API in 2022, and uses OAuth 2.0 client credentials with an 800-point-per-minute rate limit.
  • Live-status accuracy depends on polling /helix/streams server-side: 60-second polling is the practical floor for keeping a live indicator current without exhausting Helix quota.
  • Twitch player iframes require a parent= query parameter listing the embedding domain, autoplay must be paired with muted=true, and mobile playback requires playsinline=true.
  • VODs come in three Helix types: archive (auto-saved broadcasts, 14 to 60 days), highlight (creator-trimmed permanent), and upload (uploaded video files).
  • Clips have permanent slugs that survive expired VODs, are served as 30 to 60 second MP4s from Twitch's CDN, and load 4x faster than live channel embeds with no parent-domain requirement.

Frequently asked questions

Can't find the answer you're looking for? Chat with our support team.

Contact Support

Stop losing live viewers to twitch.tv recommendations

Embed your channel, VODs, and clips on your own domain. Real-time live status, lite-player performance, official Helix API.

Free plan available forever