Added clips module documentation.

2026-03-03 19:29:06 -05:00
parent b26ca8b75f
commit 988cecbabb
5 changed files with 72 additions and 0 deletions
+48
@@ -0,0 +1,48 @@
# Clips
The `clips` module lets chat users capture and save moments from the live stream using a browser-based clip editor.
This is a built-in module that ships with Owlbot and is enabled by default. It requires [ffmpeg](https://ffmpeg.org/) to be installed. If ffmpeg is not available, the module will not load.
## Quick Start
While a stream is live, create a clip:
```
!clip
```
Owlbot sends you a private message with a link to the clip editor. Open the link, use the trim slider to select the part you want, optionally add a title, and click **Create Clip**. Once processing finishes, you're redirected to the finished clip page.
Browse all saved clips:
```
!clips
```
## Commands
| Command | Aliases | Usage | Permission | Description |
|---------|---------|-------|------------|-------------|
| `!clip` | | `!clip` | Everyone | Create a clip from the current stream. |
| `!clips` | | `!clips` | Everyone | Send a link to the clips list page. |
| `!delclip` | | `!delclip <id>` | Moderator | Delete a clip by ID. |
`!clip` and `!clips` have a 15-second cooldown.
## Web UI
The module serves a clips list page at `/owlbot/clips/list` showing all saved clips in a grid with thumbnails, titles, and creation dates. The `!clips` command sends a link to this page in chat. Each clip has its own page at `/owlbot/clips/clip/<id>` with a video player, title, creator, and creation date.
## Examples
```
# Create a clip from the current stream
!clip
# View all saved clips
!clips
# Delete a clip (moderator only)
!delclip 3
```
+10
@@ -8,6 +8,16 @@ A quick listing of all commands included with Owlbot.
|---------|---------|-------------| |---------|---------|-------------|
| `!about` | | Display bot version and project link. | | `!about` | | Display bot version and project link. |
## Clips
| Command | Aliases | Description |
|---------|---------|-------------|
| `!clip` | | Create a clip from the current stream. |
| `!clips` | | Send a link to the clips list page. |
| `!delclip` | | Delete a clip by ID. |
For more information, see [Clips](Clips).
## Custom Commands ## Custom Commands
| Command | Aliases | Description | | Command | Aliases | Description |
+11
@@ -105,6 +105,17 @@ modules:
max_nesting_depth: 4 max_nesting_depth: 4
``` ```
#### Clips
| Key | Default | Description |
|-----|---------|-------------|
| `cache_duration` | `300` | Seconds of recent stream footage to keep available for clipping. |
| `min_clip_length` | `5` | Minimum clip length in seconds. |
| `max_clip_length` | `120` | Maximum clip length in seconds. |
| `clips_dir` | `"data/clips"` | Directory where saved clip files are stored. |
| `session_expiry` | `900` | Seconds before an unused clip editor session expires. |
| `grace_period` | `120` | Seconds to keep stream footage available after the stream stops. |
#### Custom Commands #### Custom Commands
| Key | Default | Description | | Key | Default | Description |
+2
@@ -4,6 +4,7 @@ Owlbot is a modular, event-driven toolkit for extending [Owncast](https://owncas
## Features ## Features
- **[Clips](Clips)**: Capture and save moments from the live stream. Viewers clip directly from chat and trim their footage in a browser-based editor, no extra software needed.
- **[Custom commands](Custom-Commands)**: Moderators can create, edit, and delete chat commands at runtime without code changes or restarts. Responses support dynamic placeholders like `$(user)`, `$(count)`, `$(rand)`, `$(countdown)`, and positional arguments. - **[Custom commands](Custom-Commands)**: Moderators can create, edit, and delete chat commands at runtime without code changes or restarts. Responses support dynamic placeholders like `$(user)`, `$(count)`, `$(rand)`, `$(countdown)`, and positional arguments.
- **[Quotes](Quotes)**: Codify the streamer's hot takes, wild claims, and memorable one-liners said live on air. Moderators add quotes, and anyone can recall them at random or look up a specific quote by ID. - **[Quotes](Quotes)**: Codify the streamer's hot takes, wild claims, and memorable one-liners said live on air. Moderators add quotes, and anyone can recall them at random or look up a specific quote by ID.
- **[Timers](Timers)**: Set up recurring chat messages that fire on a simple duration or cron schedule. An optional minimum chat line threshold keeps timers from firing into an empty chat. - **[Timers](Timers)**: Set up recurring chat messages that fire on a simple duration or cron schedule. An optional minimum chat line threshold keeps timers from firing into an empty chat.
@@ -23,6 +24,7 @@ Owlbot's core is a framework for building and running modules. If the included m
- **[uv](https://docs.astral.sh/uv/getting-started/installation/)** — handles Python and dependency management automatically - **[uv](https://docs.astral.sh/uv/getting-started/installation/)** — handles Python and dependency management automatically
- A running **Owncast 0.2.4** instance - A running **Owncast 0.2.4** instance
- **[ffmpeg](https://ffmpeg.org/)** *(optional)* — required by the clips module for video processing. If not installed, the clips module will not load but all other modules will work normally.
### 1. Installation ### 1. Installation
+1
@@ -6,6 +6,7 @@
--- ---
**Built-in Modules** **Built-in Modules**
* [Clips](Clips)
* [Custom Commands](Custom-Commands) * [Custom Commands](Custom-Commands)
* [Quotes](Quotes) * [Quotes](Quotes)
* [Timers](Timers) * [Timers](Timers)