Helper tool for stitching together livestream VOD segments and uploading them to YouTube!
Find a file
2026-01-30 14:14:54 +00:00
config more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
res tidying up a *lot*; add QoL options 2026-01-28 12:52:20 +00:00
scanner more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
template more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
video more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
youtube more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
.gitignore first working version! 2026-01-28 10:48:14 +00:00
go.mod first working version! 2026-01-28 10:48:14 +00:00
go.sum first working version! 2026-01-28 10:48:14 +00:00
main.go more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00
README.md more customisation, more QoL improvements 2026-01-30 14:14:54 +00:00

ari's VOD uploader

This tool stitches together livestream VOD segments and automatically uploads them to YouTube.

This tool expects to be run in a directory containing a metadata file, and targeting a footage directory containing .mkv files (these are really quick and easy to stitch together).

The template title and description files contain my current format for VOD upload metadata. They use generic Go templates

## Basic usage

Initialise a VOD directory:

vod-uploader --init /path/to/media

Upload a VOD, deleting the redundant full VOD export afterwards:

vod-uploader -d /path/to/media

Metadata

When --initialising a directory, a metadata.toml file is created. This is a plain-text file providing some simple options to customise uploads per directory. See this example file with additional comments:

# The title of the stream
title = 'Untitled Stream'
# (Optional) The part of an episodic stream. 0 assumes this is not episodic.
part = 0
# The date of the stream
date = '2026-01-28'
# (Optional) Additional tags to add to this VOD's metadata.
tags = ['livestream', 'VOD']
# (Optional) Footage directory override, for more complex directory structures.
footage_dir = 'footage'
# Set to `true` by the tool when the VOD has been uploaded successfully.
# Prevents future uploads unless `--force` is used.
uploaded = false

# (Optional) Category details, for additional credits.
[category]

name = 'This Thing'
# Valid types: gaming, other (default: other)
type = 'other'
url = 'https://example.org'

## Options

  • -h, --help`: Show a help message.
  • -v, --verbose`: Show verbose logging output.
  • --init: Initialise directory as a VOD directory.
  • -d, --deleteAfter`: Deletes the full VOD after upload.
  • -f, --force`: Force uploading the VOD, even if it already exists.

made with <3 by ari melody, 2026