OBS Uptime to File Lua Script
This OBS Studio Lua script writes your current stream uptime to a text file, with customizable formatting. You can use this file as a source in OBS (e.g., with a Text GDI+ source) to display your live stream duration.
Features
- Writes the current stream uptime to a file while streaming.
- Lets you choose the output file location via the script settings.
- Lets you customize the output format (e.g.,
01:23:45
,1h 23m
,83 minutes
). - When the stream stops, the file is automatically erased (emptied).
Installation
- Download or copy the
obs_uptime_to_file.lua
script to your computer. - Open OBS Studio.
- Go to
Tools
>Scripts
. - Click the
+
button and selectobs_uptime_to_file.lua
. - Set the
Output File Path
to where you want the uptime to be written. - (Optional) Set the
Format String
to customize how the uptime appears. - (Optional) Set the
Update Interval (seconds)
to control how often the file is updated (default: 1 second).
Format String
You can control how the uptime is displayed using the Format String
property. Use these placeholders:
{d}
: Days (zero-padded, e.g., 02){h}
: Hours (zero-padded, e.g., 01){m}
: Minutes (zero-padded, e.g., 09){s}
: Seconds (zero-padded, e.g., 05){D}
: Days (no padding, e.g., 2, 12){H}
: Hours (no padding, e.g., 1, 12){M}
: Minutes (no padding, e.g., 9, 23){S}
: Seconds (no padding, e.g., 5, 45)
Examples:
{h}:{m}:{s}
→01:23:45
{H}:{M}:{S}
→1:23:5
{D}d {H}h {M}m
→2d 3h 15m
(or just3h 15m
if under 1 day, or15m
if under 1 hour){M} minutes
→83 minutes
How It Works
- When you start streaming, the script begins writing the uptime to your chosen file at the interval you set (default: every second).
- When you stop streaming, the file is erased (emptied), so nothing will display if you use it as a text source.
Use Case
Add the output file as a Text (GDI+) source in OBS to show your stream uptime on your overlay. The file will always be up-to-date while you are live, and will be blank when you are not streaming.
License
MIT License. Feel free to use, modify, and share.
Languages
Lua
100%