Skip to main content
Battles Record supports three streaming platforms. Add channels from any platform and configure per-channel recording settings.

Adding Channels

1

Go to Channels

Open the dashboard and navigate to Channels in the sidebar
2

Click Add Channel

Click the + Add Channel button and select Twitch
3

Enter Channel Name

Enter the Twitch username (e.g., shroud or the full URL https://twitch.tv/shroud)
4

Configure Settings

Set quality preference and optional filters (see below)
5

Save

Click Add Channel to start monitoring

Channel Settings

Each channel has configurable recording options:
SettingDescriptionDefault
QualityVideo quality preferenceSource
EnabledWhether to record this channelOn
Title FilterOnly record if title contains keywordsNone
Category FilterOnly record specific categories/gamesAll
ScheduleOnly record during specific hoursAlways

Quality Options

QualityDescription
SourceOriginal broadcast quality (highest)
1080p601080p at 60fps if available
1080p1080p at 30fps
720p60720p at 60fps
720p720p at 30fps
480pStandard definition
360pLow bandwidth option
Audio OnlyAudio track only
If your selected quality isn’t available, the recorder will automatically fall back to the next best quality.

Content Filters

Filter recordings by stream content:

Title Filter

Record only when the stream title contains specific keywords:
keywords: valorant, ranked, competitive
This would record streams with titles like “Valorant Ranked Grind” but skip “Just Chatting”.

Category Filter

Record only specific categories or games:
categories: Valorant, Just Chatting, Call of Duty
Leave empty to record all categories.

Platform Authentication

Some features require platform authentication:

Twitch

1

Go to Settings

Navigate to Settings → Platforms in the dashboard
2

Click Connect Twitch

Authorize Battles Record to access your Twitch account
3

Benefits

  • Access to subscriber-only streams - Reduced rate limiting - Additional stream metadata

YouTube

YouTube authentication uses browser cookies or an API key:
1

Cookie Method (Recommended)

Export your YouTube cookies using a browser extension and import into Battles Record
2

API Key Method

Create a YouTube Data API key in Google Cloud Console and enter it in Settings
The cookie method grants access to member-only streams but may require periodic renewal.

Kick

Kick doesn’t require authentication for public streams. Member-only content requires:
1

Go to Settings

Navigate to Settings → Platforms in the dashboard
2

Enter Kick Credentials

Provide your Kick account email and password (stored locally)

Bulk Import

Import multiple channels at once using CSV:
platform,channel,quality,enabled
twitch,shroud,source,true
twitch,pokimane,1080p60,true
youtube,@MrBeast,source,true
kick,xqc,source,true
Go to Channels → Import and upload your CSV file.

Channel Status

The dashboard shows real-time channel status:
StatusDescription
🟢 LiveChannel is streaming and being recorded
🟡 StartingStream detected, recording starting
OfflineChannel is not streaming
🔴 ErrorRecording failed (check logs)
⏸️ PausedRecording paused by user
🚫 DisabledChannel monitoring disabled

Channel Name Handling

YouTube Name Normalization

When adding a YouTube channel, names are automatically normalized:
  • The @ prefix is added to YouTube handles if not already present (e.g., BaianotTV1 becomes @BaianotTV1)
  • Full YouTube URLs (starting with http:// or https://) are preserved as-is
  • Twitch and Kick names are not modified

Duplicate Detection

Channel names are compared case-insensitively after normalization. For example, BaianotTV1 and @BaianotTV1 are detected as duplicates on YouTube.

On Channel Add

When a new channel is added, two background tasks run automatically:
  1. Immediate live check - the daemon checks if the channel is currently live and starts recording if so
  2. Profile image fetch - profile and banner images are fetched from the platform API and stored locally

Managing Channels

Edit Channel

Click on any channel to modify its settings. Changes take effect immediately.

Pause/Resume

Temporarily pause recording without removing the channel:
  • Click the pause icon on the channel card
  • Recording will resume when you unpause

Delete Channel

Remove a channel from monitoring:
  • Click the trash icon on the channel card
  • Existing recordings are not deleted

Priority

When multiple channels go live simultaneously, priority determines recording order if resources are limited:
  • Drag channels to reorder priority
  • Higher priority channels are recorded first

Channel Images

Each channel can have associated images for display in the UI:
  • Profile Image - Avatar/profile picture from the platform
  • Banner Image - Channel banner from the platform
  • Custom Images - Upload your own images to override platform images

Automatic Fetching

Images are automatically fetched from platform APIs when a channel is added.

Image Management

ActionDescription
Fetch from PlatformRe-download images from the streaming platform
Upload CustomUpload your own image to override platform images
Delete CustomRemove custom image, revert to platform image

Upload Limits

Image TypeMax File SizeAuto-Resize To
Profile5 MB300x300 px
Banner10 MB1200x400 px
Supported Formats: PNG, JPEG, GIF, WebP Images are stored in the images_dir directory, organized by channel ID.

Testing Platform Connections

After configuring authentication for any platform, verify the connection is working:
1

Go to Platform Auth

Navigate to the Platform Auth page
2

Test Connection

Click Test Connection for the platform
3

Verify Results

Success shows the authenticated username, or an error with details
For the best experience, use OAuth to connect your streaming platform accounts. OAuth credentials are bundled with the application - no developer portal setup needed.
PlatformOAuth SupportNotes
TwitchFull OAuth2Automatic token refresh
YouTubeGoogle OAuth2Automatic token refresh, or use cookie auth
KickFull OAuth2Automatic token refresh
Bundled credentials route through a secure proxy at teambattles.gg for client secret handling. All OAuth flows use PKCE with CSRF state validation for security.

Token Refresh

Platform tokens are automatically refreshed 10 minutes before they expire. No manual intervention is needed once connected. If refresh fails, you’ll be prompted to reconnect.

Custom OAuth Credentials

For self-hosted deployments, you can configure your own OAuth credentials:
1

Go to Auth Page

On the Platform Auth page, click Advanced OAuth for the platform
2

Enter Credentials

Enter your Client ID and Client Secret from the platform’s developer portal
3

Save and Connect

Save credentials and proceed with the OAuth flow
Custom credentials override the bundled defaults when set.