Skip to main content

Fellowship Recorder

Automatically record your Fellowship dungeon runs with automatic detection, chapter markers, and rich metadata.

  • This currently only works on Linux
  • "Enable Advanced Combat Logs" needs to be enabled within the Gameplay options in Fellowship

TUI Dashboard

Features

  • Automatic recording - Detects dungeon start/end from combat logs
  • Smart naming - 20251125_090352_Urrak_Markets_Eternal_26.mkv
  • Chapter markers - Boss encounters and player deaths (requires FFmpeg)
  • Rich metadata - Party composition, deaths, affixes, difficulty tiers (JSON)
  • Configurable filters - Record only specific difficulties or skip Quick Play
  • TUI dashboard - Live status, events, and recordings in a terminal interface
  • Lightweight - Minimal resource usage, runs in background

Quick Start

1. Install

Install uv (if you don't have it):

curl -LsSf https://astral.sh/uv/install.sh | sh

Install fellowship-recorder:

uv tool install fellowship-recorder

This automatically handles Python and creates an isolated environment.

Uninstall:

uv tool uninstall fellowship-recorder

System requirements:

  • Linux
  • gpu-screen-recorder (AUR: yay -S gpu-screen-recorder)
  • FFmpeg (optional, for chapter markers: sudo pacman -S ffmpeg)
  • Fellowship via Steam/Proton

2. Configure

Create a config file at ~/.config/fellowship-recorder/config.toml:

mkdir -p ~/.config/fellowship-recorder
curl -o ~/.config/fellowship-recorder/config.toml \
  https://raw.githubusercontent.com/trenchtoaster/fellowship-recorder/main/config.toml.example

Edit to set your monitor (find with hyprctl monitors or xrandr):

[recording]
monitor = "DP-1"

3. Run

fellowship-recorder

The TUI dashboard will:

  • Monitor your combat logs
  • Auto-start recording on dungeon entry
  • Auto-stop when complete
  • Save with descriptive filename + metadata JSON

CLI Commands

# Start the TUI (default)
fellowship-recorder

# Run without TUI (headless mode)
fellowship-recorder --headless

# Parse combat logs (useful for processing existing logs)
parse-log CombatLog.txt --list

# Generate video description from metadata
generate-description video.mkv --output description.txt

TUI Dashboard

The default interface for monitoring recordings in real-time.

Features:

  • Live recording status with elapsed time
  • Current dungeon name and difficulty
  • Real-time log events (boss fights, deaths, zone changes)
  • Recent recordings list with the ability to open video or metadata files
  • Ability to delete a recording and the associated metadata files directly
  • Config summary

Key bindings:

Key Action
q Quit
r Refresh recordings
c Clear event log
o Open selected video
m Open metadata JSON
f Open folder
d Delete recording and metadata files

Output Files

Each recording creates two files:

Video file (.mkv or .mp4):

  • Embedded chapter markers for boss fights and deaths
  • Metadata tags (dungeon name, difficulty, result)

Metadata file (.json):

See CLI Reference for complete documentation.

How It Works

  1. Watches your Fellowship CombatLogs directory for changes
  2. Parses combat log events (DUNGEON_START, DUNGEON_END, ENCOUNTER_START, ALLY_DEATH, etc.)
  3. Controls gpu-screen-recorder to start/stop recording
  4. Enriches metadata by scanning logs for party info, deaths, and affixes
  5. Embeds chapter markers and metadata tags using FFmpeg

Configuration

Config file locations (searched in order):

  1. ~/.config/fellowship-recorder/config.toml (recommended for installed users)
  2. ./config.toml (project directory, for development)

Edit your config to customize:

Essential settings:

  • log_directory - Fellowship combat logs path
  • monitor - Display to record (find with hyprctl monitors or xrandr)

Recording settings:

  • resolution, quality, fps, format
  • audio_device - Audio source to record (omit or set to null to disable audio)

Filters:

  • min_difficulty - Only record dungeons above this difficulty (0 = all)
  • record_quick_play - Record Quick Play mode (default: false)

Timing:

  • dungeon_overrun - Extra seconds after dungeon ends (default: 5)
  • inactivity_timeout - Stop after N seconds of no activity (default: 300)

Chapters:

  • boss_markers - Add chapters for boss encounters
  • death_markers - Add chapters for player deaths
  • chapter_offset - Offset death markers backward in seconds

See config.toml.example for complete documentation.

Desktop Entry

To add Fellowship Recorder to your app launcher:

cp contrib/fellowship-recorder.desktop ~/.local/share/applications/

Troubleshooting

See TROUBLESHOOTING.md for help with common issues.

Documentation

Credits

Inspired by Warcraft Recorder for Windows.

License

MIT License

Metadata

Release files for fellowship-recorder 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fellowship-recorder 0.6.0
File Size Uploaded
fellowship_recorder-0.6.0.tar.gz 48.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fellowship-recorder 0.6.0
File Interpreter ABI Platform
fellowship_recorder-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 90.0 kB

Release files / fellowship_recorder-0.6.0.tar.gz

Download URL fellowship_recorder-0.6.0.tar.gz
Size 48.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3f4ab10e8ce8b7b00cacd728cd017a530024ee718a248eb063a55273aedab379
BLAKE2b-256 checksum
How to use checksums
770c11dabf169092925e9c7f92994cae3c0d4dcc7ae095414a57a55745106710
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fellowship_recorder-0.6.0-py3-none-any.whl

Download URL fellowship_recorder-0.6.0-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1896dc26c860d91168c3458a84454524909681e39cf189467bf6faac646eb754
BLAKE2b-256 checksum
How to use checksums
eee19da8a39635d3bf944492ea46febe1e5c7278bfd8288594adb861a1f3e62d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page