Album Details — applied to all tracks in this batch
📁
Drop a folder or multiple files
Audio and video files — MP3, WAV, FLAC, M4A, MP4, MOV
0 files queued
Title
Artist
Type
Size
Status
Uploading…
🎬
Video / Music Video
MP4, MOV up to 4GB 1080p recommended for Roku
🎵
Audio Track
MP3, WAV, FLAC, M4A 320kbps recommended
Roku Thumbnails — JPG only, no PNG
⚠ Episode thumbnail is required — tracks without it will not play on Roku
Episode / Track Required
500 × 281 px · 16:9
+ 500×281
Artist / Series Poster
240 × 360 px · 2:3
+ 240×360
Channel Banner
2560 × 1440 px
+ 2560×1440
Episode thumbnail is required for every track. Roku will not play content without a 500×281px JPG thumbnail — this is the single most common reason channels fail. Upload one for every track before publishing.
Need a thumbnail? Create one free at Waveform ↗ — generate a music visualizer, screenshot at 500×281px, export as JPG. JPG only — Roku does not support PNG. Max 10MB per file.
Track Details
Uploading…0%
My Channel
Customize how your channel appears on Roku
Your Channel
Channel Preview
This is how your channel appears to Roku viewers.
Videos Live
—
Total Streams
—
Selected Layout
Home Rows
Channel Settings
Choose how content is presented to your Roku viewers
Home Rows
Hero + horizontal scroll rows
Poster Grid
5-column video browse grid
Category Browse
Genre sidebar + 4-col grid
Artist View
Artist card + track list
Search First
Search bar as landing page
+ Logo
Channel Logo
JPG or PNG · 400×400px recommended · Max 10MB
+ Banner
Channel Banner
JPG · 2560×1440px recommended · Max 20MB
Self-certify your channel's content rating. This is required by Roku and affects parental controls and ad targeting.
G
General — All Audiences
No explicit language, violence, or adult themes. If any content is directed at children under 13, select this and also enable "Made for Kids" below.
PG13
Teen — 13 and Older
May contain mild language or moderate themes. Not suitable for young children. Most music and performance content falls here.
17+
Mature — 17 and Older
Requires Roku age gate. AVOD monetization restricted. Must not contain sexually explicit content or graphic violence. Contact support before selecting.
Made for Kids (COPPA)
Check this if any of your content is directed at children under 13. Enables COPPA compliance mode — disables behavioral advertising and data collection from minors.
Ad-Supported (AVOD)
Allow viewers to watch your channel for free with ads. Your label keeps 65% of ad revenue. Toggle off to make your channel subscription-only.
✓ AVOD enabled — viewers can watch free with ads
Analytics
Stream performance and audience data
Demo data
Total Streams
24,831
↑ 12%
Watch Time
1,842h
↑ 9%
Avg. Session
4.6m
↑ 3%
New Subs
143
↑ 21%
Streams over time
Top Tracks
Billing
Manage your plan, payouts, and invoices
You're on a free trial. Your card will be charged automatically when the trial ends. Cancel anytime.
—
days remaining
Current Plan
—
Status
—
Artists
—
Submit Payout Request
Available Balance
$892.00
Last Payout
—
Revenue Breakdown
Subscription revenue (SVOD)$741.00
Ad revenue (AVOD)$151.00
Royalties due to artists
Your obligation — must be paid to your artists
−$123.00
Net to label$769.00
How Payouts Work
When do I get paid? StreamSpindle processes label payouts monthly, typically 30–45 days after each calendar month ends — aligned with Roku's payment schedule.
What's included? Your payout equals net income for the period — subscription + ad revenue, minus the StreamSpindle platform fee and artist royalties. Full breakdown in the Royalties tab.
Is my bank info secure? Bank details are collected and stored by Stripe. StreamSpindle never stores raw banking information.
Tax forms If your label earns more than $600/year, Stripe automatically generates a 1099 via your Stripe Express dashboard.
You're approaching your 50-artist limit on the Starter plan.
Artist
Genre
Streams MTD
Split %
Revenue Due
No artists yet — add your first artist to get started.
Team
Manage admin and employee access to your account
You are the Admin. Admin accounts control billing, channel settings, and team access. Changes to your admin email or password require email verification. Employees can manage content but cannot access billing or team settings.
StreamSpindle is a SaaS platform that enables independent record labels to launch and monetize branded Roku channels. Labels pay a monthly subscription, upload their catalog via this dashboard, and StreamSpindle distributes it to Roku viewers who can subscribe at $9.99/month or watch ad-supported for free.
The platform handles channel provisioning, content ingestion, stream reporting, royalty calculation, and billing. Labels do not need engineering resources or a direct relationship with Roku.
Core value: A record label can go from no Roku presence to a live, monetized branded channel in minutes — without code, without a Roku developer account, and without negotiating a direct Roku distribution deal.
Account
Plans & Pricing
All plans include a 90-day free trial — card required upfront. No long-term contracts. Upgrade, downgrade, or cancel anytime from the Billing tab.
Starter
$49/mo
Up to 50 artists
Roku channel provisioning · Catalog management · SVOD + AVOD monetization · MusicBrainz enrichment · Standard analytics
Label
$149/mo
Unlimited artists
Everything in Starter · Unlimited roster · Royalty tracker · PDF export · Acknowledgment log · DDEX ingestion · Priority support
Revenue
How Revenue Works
SVOD (subscription): Per $9.99 viewer/month — Roku keeps 20%, StreamSpindle keeps 30% of the remainder, your label keeps $5.59.
AVOD (ad-supported): Your label keeps 65% of net ad revenue. StreamSpindle keeps 35%.
Net income = (SVOD + AVOD revenue) − platform fee − distributor fee − artist royalties. This is the amount you may submit a payout request for.
Disbursement timing: Monthly, 30–45 days after month end, subject to Roku's payment schedule. Only streams over 30 seconds count.
Revenue
Royalty Reports
StreamSpindle calculates and reports master recording royalties only. Publishing royalties, mechanical royalties, and PRO obligations (ASCAP, BMI, SESAC) are entirely the label's responsibility.
Monthly statements are generated per period. Acknowledge each statement to lock it. Records retained 7 years. Label plan required for per-track breakdown.
Platform
Roku Platform
StreamSpindle channels can only monetize in the four markets where The Roku Channel operates: 🇺🇸 United States · 🇨🇦 Canada · 🇬🇧 United Kingdom · 🇲🇽 Mexico.
Technical requirements: Video H.264 1080p MP4/MOV up to 4GB · Audio MP3/WAV/FLAC/M4A 320kbps · Episode thumbnail 500×281px JPG (required) · Artist poster 240×360px JPG · Channel banner 2560×1440px JPG.
⚠ Episode thumbnail is required — this is the #1 cause of Roku playback failure
Every track must have a 500×281px JPG thumbnail before it will play on Roku. PNG is not supported and will be rejected. If you don't have artwork, create a free music visualizer at waveform.rocks ↗ — screenshot at 500×281px and export as JPG.
Quick size reference: Episode/Track — 500×281px · Artist Poster — 240×360px · Channel Banner — 2560×1440px · Category Row Header — 1280×72px. All files must be JPG. Max 10MB per file.
Your Catalog
Connecting via DDEX
Go to Connect in the sidebar. Enter your ERN 3.8.2 feed URL and API key from your distributor's portal under API or Delivery Settings. StreamSpindle checks daily and imports new releases as drafts.
Supported: DistroKid · TuneCore · CD Baby · Amuse · AWAL · Empire · The Orchard · any DDEX ERN 3.8.2 service.
Go to Upload in the sidebar. Supports video (MP4/MOV up to 4GB), audio (MP3/WAV/FLAC/M4A), and cover art. ISRC is required for per-track royalty reporting on the Label plan.
Before you publish, every track needs three things:
Episode Thumbnail
500×281px · JPG · Required
Playback fails without this
Artist Poster
240×360px · JPG · Optional
Used in Artist View layout
Audio / Video File
MP4/MOV or MP3/WAV/FLAC
1080p H.264 recommended
No artwork? Create a free music visualizer at waveform.rocks ↗ — generate a visualizer for your track, screenshot at exactly 500×281px, and export as JPG. Takes about 2 minutes per track.
Account
Billing
Manage your plan and cancel from the Billing tab. Subscriptions auto-renew monthly via Stripe. Cancel at least 24 hours before renewal to avoid the next charge. No refunds for partial months. 7 days to resolve payment failures before suspension.
Account
Artists
Add and manage your roster from the Artists tab. Starter supports up to 50 artists. Each artist has a royalty split %, territory permissions, and an optional MusicBrainz ID for automatic cover art and genre enrichment. Artist-level territory settings take precedence over all other territory configurations.
Architecture
Tech Stack
Dashboard HTML/CSS/JS — Cloudflare Pages
API Cloudflare Workers (TypeScript)
Database Cloudflare D1 (SQLite · 11 tables)
Storage Cloudflare R2 (audio, video, art)
Billing Stripe — 3 plans, 6 webhooks
Enrichment MusicBrainz + Cover Art Archive
Account
Takedowns & DMCA
Use the Request Takedown button in your catalog. Content removed within 24–48 hours. DMCA notices: [email protected]
Please read these Terms carefully before using StreamSpindle. By creating an account or using the Service, you agree to be bound by these Terms. These Terms include important provisions regarding royalty reporting obligations, content rights, indemnification, and limitation of liability.
01 — Acceptance
Acceptance of Terms
By accessing or using StreamSpindle at streamspindle.com and any associated subdomains, you confirm that you are authorized to enter into this agreement on behalf of the label, company, or entity you represent ("Label"), and that such entity agrees to be bound by these Terms.
If you are an individual acting on behalf of a Label, you represent that you have the legal authority to bind that entity. If you do not have such authority, do not use the Service.
02 — The Service
The Service
StreamSpindle is a software-as-a-service platform that enables independent record labels to distribute audio and video content to Roku-connected television devices via branded Roku channels. StreamSpindle provides a label dashboard, Roku channel creation and maintenance, viewer subscription management via Roku Pay, ad-supported distribution, stream analytics, royalty reporting, and DDEX ERN XML ingestion.
StreamSpindle is a technology and distribution platform only. It does not act as a record label, music publisher, performing rights organization, or royalty collection society. StreamSpindle does not collect or distribute artist royalties on behalf of labels.
03 — Eligibility
Eligibility
To use the Service, you must: be at least 18 years of age; be a legally registered business entity or sole proprietor operating as a record label; have the legal right to distribute all content you upload; have valid artist agreements granting you master recording rights sufficient for digital distribution; and not be located in a jurisdiction subject to U.S. export controls or sanctions.
04 — Plans
Subscription Plans
Starter — $49/mo: Up to 50 artists, Roku channel, SVOD + AVOD monetization, standard analytics.
Label — $149/mo: Everything in Starter plus unlimited artists, royalty tracker, PDF export, DDEX ingestion.
StreamSpindle reserves the right to modify plan pricing with 30 days written notice.
05 — Content
Content Ownership & License
You retain ownership of all content you upload. By uploading, you grant StreamSpindle a non-exclusive, worldwide license to host, distribute, transcode, and display your content on the Roku platform. This license terminates when you remove the content or close your account.
07 — Royalties
Royalty Rates & Qualified Streams
A stream qualifies after 30 seconds of continuous playback. StreamSpindle tracks master recording royalties only. Publishing royalties and PRO obligations (ASCAP, BMI, SESAC) are the label's responsibility. Actual per-stream rates are set per artist agreement and configured via the Artists tab.
08 — Reporting
Royalty Reporting & Acknowledgment
StreamSpindle generates monthly royalty statements accessible from the Royalties tab. Labels must acknowledge each statement to lock it — acknowledgment is permanent and cannot be reversed. Acknowledged statements are retained for a minimum of 7 years. Labels may submit a payout request to their distributor only after acknowledging the relevant statement.
09 — Label Obligations
Label Royalty Obligations
Labels are solely responsible for calculating and disbursing royalties to all artists and rights holders. Labels must pay artists per their agreements regardless of whether the label has received payment from StreamSpindle.
StreamSpindle is not a royalty collection agency. Determining what is owed to artists is the label's exclusive responsibility.
10 — Takedowns
Content Takedowns & DMCA
Labels may request content removal via the Request Takedown button in the catalog. Content will be removed within 24–48 hours. DMCA takedown notices should be submitted to [email protected] with subject line "DMCA Notice." StreamSpindle will respond to valid DMCA notices within 5 business days.
11 — Billing
Billing & Payment
Subscriptions bill monthly via Stripe and auto-renew until cancelled. Cancel at least 24 hours before renewal. No refunds for partial months. Accounts suspended if payment is not resolved within 7 days of failure. All plan fees are exclusive of applicable taxes.
12 — Revenue Share
Revenue Share
SVOD: Roku retains 20% of gross subscription revenue. StreamSpindle retains 30% of the remaining 80%. The Label receives the remainder after distributor fees and artist royalties.
AVOD: Label retains 65% of net ad revenue; StreamSpindle retains 35%.
Revenue disbursements are made monthly, typically 30–45 days after month end. StreamSpindle may withhold disbursements in cases of suspected fraud, unresolved rights disputes, or account suspension.
13 — Privacy
Privacy & Data
StreamSpindle records all stream events for analytics and royalty reporting. Stream reports and acknowledgment records are retained for a minimum of 7 years. StreamSpindle does not sell Label data to third parties. StreamSpindle may disclose data in response to valid legal process.
14 — Indemnification
Indemnification
The Label agrees to indemnify, defend, and hold harmless StreamSpindle from all claims, damages, and costs arising from: content uploaded by the Label; any artist or rights holder claiming unpaid royalties; breach of these Terms; or violation of any applicable law.
Artist royalty disputes are explicitly covered — the Label's indemnification obligation is not contingent on StreamSpindle's royalty report accuracy, provided StreamSpindle delivered reports per Section 8.
15 — Disclaimer
Disclaimer of Warranties
The Service is provided "as is" and "as available" without warranties of any kind. StreamSpindle does not warrant uninterrupted or error-free service, 100% accurate stream data, or that Roku's platform or fee structure will remain unchanged.
16 — Liability
Limitation of Liability
StreamSpindle's total liability shall not exceed subscription fees paid in the twelve months preceding the claim. StreamSpindle is not liable for indirect, incidental, or consequential damages including loss of revenue, Roku platform changes, or artist royalty disputes.
17 — Governing Law
Governing Law & Disputes
These Terms are governed by U.S. law. Disputes shall first be subject to good-faith negotiation, then binding arbitration per the American Arbitration Association rules. The Label waives any right to a jury trial or class action.
Connect your bank account to receive label payouts
Bank account not connected
Connect your account to receive ACH payouts from StreamSpindle
Not connected
Connect via Stripe
1
Connect your bank account
Stripe securely collects and verifies your routing and account number. StreamSpindle never sees your raw bank details.
2
Acknowledge monthly statement
Once connected, go to Royalties (Label plan) to review and acknowledge your monthly statement.
3
Receive your payout
StreamSpindle processes ACH payments monthly. Funds arrive within 2–5 business days of processing.
Payout History
No payouts yet.
How Payouts Work
When do I get paid?
StreamSpindle processes label payouts monthly, typically within 30–45 days after the end of each calendar month. This aligns with Roku's payment schedule to StreamSpindle.
What's the payout amount?
Your payout equals your net income for the period — subscription revenue plus ad revenue, minus your StreamSpindle platform fee, minus artist royalties. You can see this breakdown in the Royalties tab (Label plan).
Is my bank information secure?
Yes. Bank account details are collected and stored by Stripe — a licensed payment processor used by Airbnb, Shopify, and millions of other businesses. StreamSpindle never stores your raw banking information.
Tax forms
If your label earns more than $600/year through StreamSpindle, Stripe will automatically generate a 1099 form. You'll receive it via email and it will be available in your Stripe Express dashboard.