Channel Stats & Recent Videos

{{ searchQuery ? videos.length + ' match(es) found' : videos.length + ' video(s) indexed' }}

Select a video to run a live SEO audit or modify its metadata.

Download Backup CSV
Loading your videos from YouTube...
Video Published Date Action
{{ video.title }}
ID: {{ video.id }}
{{ formatDate(video.publishedAt) }}
No videos found. Click Refresh to load.

Live Metadata SEO Auditor

Paste draft title, description, and tags below to run a real-time check against custom rules.

Character count: {{ auditDraft.tags.length }} / 500
SEO Health Score {{ auditResults.score }}/{{ auditResults.max_score }}
AUDIT CHECKLIST:
{{ formatKeyName(key) }} {{ details.score }}/{{ details.max }}
{{ details.status }}
CORRECTIONS & SUGGESTIONS:
  • {{ warning }}
Fill out the metadata fields on the left and click "Run Audit" to view calculations.

Competitor Tag Extractor

Extract public tags from any competitor's YouTube video to analyze or copy into your metadata drafts.

Extracted from: {{ extractedVideoTitle }}

{{ tag }}
{{ tagExtractError }}

Match Chapter Generator

Quickly generate standard formatted YouTube description timestamp chapters for your gameplay leagues and matches.

Bulk Description Updater

Update structured boilerplate sections using comment markers or perform find-and-replace queries across multiple videos.

Sync Decklist Links (via decklinks.py)

Runs your local decklinks.py script to parse the latest download, upload to Moxfield, and generate Cardhoarder and TCGPlayer affiliate links.

✓ Moxfield & affiliate links synced!
Generated Links:

Select Videos to Update ({{ bulkForm.selected_videos.length }} of {{ videos.length }} selected):

Dry Run Preview (First Selected Video)

BEFORE:
{{ previews[0].original }}
AFTER:
{{ previews[0].updated }}
⚠️ This will save backups in the database and push changes immediately to YouTube.

Backups & Rollback History

Browse historical snapshots, save manual backups, or restore descriptions from a CSV backup file.

Saved Backup Batches

Date Label / Info Count Action
{{ formatDate(backup.created_at) }}
{{ backup.label || 'Automated Bulk Update' }}
{{ backup.batch_identifier }}
{{ backup.video_count }} video(s)
No backups found in the database.

Create Manual Snapshot

Save the current state of selected descriptions directly to the database without updating YouTube.

All | None

Restore from CSV Backup

Upload a previously downloaded CSV backup file to restore video descriptions directly to YouTube.

CSV must contain "Video ID" and "Description" headers.

Comment Templates & Canned Responses

Manage saved templates for comment replies. These templates will be injected directly into your YouTube Studio comments section via the Chrome Extension!

Pinned Comment Template (Automated Pinned Comment)

This template is used by the background worker to automatically assemble and post the pinned comment on newly uploaded unlisted or public videos.

Saved Templates

Shortcut / Trigger Template Text Action
!{{ tpl.shortcut }} {{ tpl.template }}
No comment templates saved yet.

{{ cannedForm.id ? 'Edit Template' : 'Add Template' }}

!
Used as a quick keyword (e.g. typing !decklink will expand).

Deck Specific Resource Mappings (Showcases & Primers)

Configure deck-specific resources. The background worker will scan your video titles/descriptions for keywords and automatically append playlists, annual showcases, primers, and sideboard guides as a secondary comment thread.

{{ dr.deck_name }} {{ dr.format_name }}
Keywords: {{ dr.keywords }} Showcases: {{ dr.showcase_years }}
No deck resource mappings configured yet.

{{ deckResourceForm.id ? 'Edit Deck Mapping' : 'Add Deck Mapping' }}

Automatic Comment Replies & Moderator Bot

Set up automatic replies to throwaway/low-effort comments using nested AND/OR conditionals. Pending replies are randomly delayed between 1 to 25 minutes to look natural.

Active Rules

{{ groupName }}

{{ rule.name }} ● {{ rule.is_active ? 'Active' : 'Paused' }}
{{ rule.generic_replies.length }} generic, {{ rule.variable_replies.length }} variable reply options
No auto-reply rules configured yet.

Bot Queue & Action Logs

User / Video Comment Text Reply Posted Status / Run Time
{{ item.author_name }}
Video: {{ item.video_id }}
"{{ item.comment_text }}" "{{ item.reply_text }}" {{ item.status }}
{{ formatDate(item.scheduled_for) }}
Queue is currently empty.

{{ ruleForm.id ? 'Edit Auto-Reply Rule' : 'Create Auto-Reply Rule' }}

Specify logic rules matching video parameters, decklists, or comment words.

Generic Replies (Weight: 1x)

Standard general throwaway comment responses.

Variable Replies (Weight: 3x)

Custom context replies that are combined and prioritized.