Skip to content

First run

zebadrabbit edited this page Jul 22, 2026 · 1 revision

First run

clippy setup is a guided wizard that writes your .env (credentials) and clippy.yaml (everything else). Run it any time — it's safe to re-run and won't clobber values you don't change.

clippy setup

Step 0 — choose your clip source

Sources:
  1) Twitch (Helix) — fetch recent clips for a broadcaster
  2) Discord channel — users paste clip links; we'll read and resolve them
Select source [1/2]:

Pick Twitch if you want Clippy to pull recent clips directly from a broadcaster's channel. Pick Discord if your community shares clips in a channel and you want Clippy to read and resolve those links instead.

If you chose Twitch

You'll need a Twitch application's Client ID and Secret:

Step 1: Twitch Client ID & Secret
  Get credentials: https://dev.twitch.tv/console/apps (create an application)
  Client Credentials flow is used; redirect URL is not required for clip fetching.
Twitch Client ID:
Twitch Client Secret:

Go to dev.twitch.tv/console/apps, create an application (any name, any category — an OAuth Redirect URL is required by the form but not actually used for this), and copy the Client ID and Client Secret it gives you back into the prompts.

If you chose Discord

Step 2: Discord setup
  1) Enable Developer Mode in Discord: User Settings -> Advanced -> Developer Mode
  2) Right-click the target channel -> Copy Channel ID
  3) Create a bot at https://discord.com/developers/applications and copy the Bot Token (Bot tab)
  4) Ensure the 'Message Content Intent' is enabled for your bot
  5) Invite the bot to your server with permissions to read the channel
Discord channel ID (numeric):
Discord message scan limit [200]:
Discord bot token (stored in .env):

Where to find each thing:

  • Channel ID — turn on Developer Mode (Discord Settings → Advanced), then right-click the channel you want Clippy to read → Copy Channel ID.
  • Bot token — create a bot at discord.com/developers/applications, open its Bot tab, and copy the token there. Keep it secret — it's written to .env, never to clippy.yaml.
  • Message Content Intent — same Bot tab, toggle it on. Without it the bot can see a channel exists but not read the message text that contains clip links.
  • Invite the bot to your server with permission to read message history in that channel (Discord's OAuth2 URL generator, in the same app, builds the invite link).

Clippy validates the token immediately (✔ Discord token validated (login OK)) so you know right away if something's wrong, rather than finding out on your first real run.

The rest of the wizard

Whichever source you picked, the wizard continues with:

  • Clip selection & identity — minimum views to include a clip, clips per compilation, number of compilations per run, and a default broadcaster name (used for output filenames and — even in Discord mode — as the identity Clippy attaches to a run).
  • Output quality & format — a quality preset (balanced/high/max), resolution, framerate, audio bitrate.
  • Everything else (transitions directory, intro/outro, cache/output paths) uses sensible defaults; edit clippy.yaml directly later if you want to change them, or see the commented clippy.yaml.example in the repo for every available option.

At the end, Clippy writes .env and clippy.yaml and tells you the next command to run:

python .\main.py --broadcaster theflood -y          # Twitch
python .\main.py --discord -y                       # Discord

Next

For day-to-day use after this first setup, see Subsequent runs. For unattended/scheduled runs, see Headless mode.

Clone this wiki locally