more customisation, more QoL improvements

an all-around good time!
This commit is contained in:
ari melody 2026-01-30 14:14:54 +00:00
parent 2954689784
commit 45db651388
Signed by: ari
GPG key ID: CF99829C92678188
9 changed files with 315 additions and 147 deletions

63
README.md Normal file
View file

@ -0,0 +1,63 @@
# 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](#metadata)
file, and targeting a footage directory containing `.mkv` files (these are
really quick and easy to stitch together).
The template [title](template/title.txt) and
[description](template/description.txt) files contain my current format
for VOD upload metadata. They use generic Go templates
## Basic usage
Initialise a VOD directory:
```sh
vod-uploader --init /path/to/media
```
Upload a VOD, deleting the redundant full VOD export afterwards:
```sh
vod-uploader -d /path/to/media
```
## Metadata
When `--init`ialising 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:
```toml
# 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*