Skip to content

DimitriGilbert/VaideoEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

VaideoEditor

A command-line tool for creating timed markers and controlling OBS Studio during video recording sessions. This tool helps streamline your video editing workflow by automatically tracking timestamps and controlling OBS recording functions.

Features

  • Timed Markers: Automatically timestamp all actions for precise video editing
  • OBS Integration: Direct control of OBS Studio via obs-cli
  • Magic Markers: Special actions that trigger OBS commands automatically
  • Break Management: Automatic numbering of recording segments
  • Flexible Configuration: Support for config files and command-line overrides
  • Remote OBS Support: Connect to OBS instances on different machines

Prerequisites

Required

Installing obs-cli

On Arch Linux:

yay -S obs-cli

Using Go:

go install github.com/muesli/obs-cli@latest

Download Binary:

Download from the obs-cli releases page

Installation

  1. Clone or download the marker script
  2. Make it executable:
    chmod +x marker
  3. Optionally, copy to your PATH:
    sudo cp marker /usr/local/bin/

Configuration

Config File Setup

  1. Copy the example config:

    cp .vaideoEditor.example .vaideoEditor
  2. Edit .vaideoEditor with your OBS settings:

    # OBS WebSocket connection settings
    OBS_HOST="localhost"          # OBS host (default: localhost)
    OBS_PORT="4455"              # OBS WebSocket port (default: 4455)
    OBS_PASSWORD=""              # OBS WebSocket password (optional)

OBS Studio Setup

  1. Install the obs-websocket plugin in OBS Studio
  2. Configure WebSocket settings in OBS:
    • Go to Toolsobs-websocket Settings
    • Set port (default: 4455)
    • Set password (optional but recommended)
    • Enable the WebSocket server

Usage

Basic Syntax

./marker <action> <marker-value> [options]

Actions

Action Description OBS Command
start Start recording with filename obs-cli recording start
mute Mute microphone obs-cli source toggle-mute 'Mic/Aux'
speak Unmute microphone obs-cli source toggle-mute 'Mic/Aux'
timestamp Add timestamp marker only None
break-start Start break recording (numbered) obs-cli recording start
break-stop Stop break recording obs-cli recording stop
stop Stop recording obs-cli recording stop

Options

Option Description Default
--file <file> Marker file to save to vaiditor.txt
--host <host> OBS host address localhost
--port <port> OBS WebSocket port 4455
--password <pass> OBS WebSocket password (none)
--config <file> Configuration file .vaideoEditor
--verbose Increase verbosity
--quiet Decrease verbosity

Examples

Basic Recording Session

# Start main recording
./marker start "intro-video"

# Add timestamp markers
./marker timestamp "important-point-1"
./marker timestamp "transition-to-demo"

# Mute during pause
./marker mute "thinking-pause"
./marker speak "resume-talking"

# Stop recording
./marker stop "end-intro"

Break Recording Session

# Start first segment
./marker start "tutorial-part1"

# Take a break
./marker break-stop "end-part1"

# Start break recordings (auto-numbered)
./marker break-start "tutorial"  # Creates tutorial_1_raw.mkv
./marker break-stop "end-break1"

./marker break-start "tutorial"  # Creates tutorial_2_raw.mkv
./marker break-stop "end-break2"

# Final recording
./marker start "tutorial-outro"
./marker stop "finished"

Remote OBS Control

# Connect to remote OBS instance
./marker start "remote-recording" --host 192.168.1.100 --password secret

# Or set in config file and use normally
./marker mute "pause"

Output Format

The marker file contains timestamped entries in the format:

timestamp|action|marker_value

Example vaiditor.txt:

1704721234567|start|intro-video
1704721245123|timestamp|important-point-1
1704721267890|mute|thinking-pause
1704721278456|speak|resume-talking
1704721298123|stop|end-intro

Advanced Usage

Custom Microphone Source

If your microphone source in OBS has a different name, you'll need to modify the script. Common source names:

  • 'Mic/Aux' (default)
  • 'Microphone'
  • 'Audio Input Capture'

Multiple OBS Instances

Use different config files for different setups:

./marker start "recording" --config .obs-local
./marker start "stream" --config .obs-remote

Automation Scripts

Integrate with other tools:

#!/bin/bash
# Auto-recording script
./marker start "automated-session"
sleep 10
./marker timestamp "10-seconds-in"
sleep 30
./marker stop "automated-end"

Troubleshooting

Common Issues

  1. "obs-cli not found"

    • Install obs-cli (see Prerequisites)
    • Ensure it's in your PATH
  2. "OBS command failed"

    • Check OBS is running
    • Verify WebSocket plugin is installed and enabled
    • Check connection settings (host/port/password)
  3. "Missing required tags"

    • Ensure obs-websocket plugin is properly installed
    • Check OBS WebSocket server is running
  4. Microphone toggle not working

    • Check your microphone source name in OBS
    • Modify the script if using a different source name

Debug Mode

Use verbose logging to troubleshoot:

./marker start "test" --verbose
./marker start "test" --verbose --verbose  # Extra verbose

File Structure

vaideoEditor/
├── marker                    # Main script
├── .vaideoEditor.example    # Example config file
├── .vaideoEditor           # Your config file (create from example)
├── vaiditor.txt            # Default marker file (generated)
└── README.md               # This file

Contributing

Feel free to submit issues and enhancement requests!

License

This project is open source. Please check individual component licenses:

Related Projects

  • OBS Studio - Free and open source software for live streaming and screen recording
  • obs-websocket - WebSocket plugin for OBS Studio
  • obs-cli - Command-line remote control for OBS

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages