Skip to main content

Steam Game Recording Exporter

Export Steam's fragmented game recordings (.m4s + .mpd) as standard MP4 files without re-encoding. Choose recordings from an interactive terminal menu or use command-line options for batch exports.

  • Windows, Linux and macOS with automatic Steam path detection
  • Background recordings and saved clips, filtered by game or Steam account
  • Parallel exports with per-worker and overall progress
  • Original timestamps preserved, with optional folders per game

Original recordings are kept unless you explicitly choose source deletion or cleanup mode.

Quick start

Install with uv on Windows, Linux or macOS:

uv tool install steam-game-recording-exporter
steamexporter

uv manages Python and dependencies. Available after the first PyPI release. Update with uv tool upgrade steam-game-recording-exporter.

Interactive mode

Run steamexporter in an interactive terminal. Use arrow keys and Enter to select, Esc to go back, and Ctrl+C to cancel.

? What do you want to do?
❯ Export recordings to MP4
  List recordings
  Clean up sources of already-exported recordings
  Show detected Steam paths

? Which Steam recordings?
❯ Background recordings (default)
  Everything Steam has stored
  Saved clips (manually created)

? Which game?
❯ All games (21 clips)
  Counter-Strike 2 (14 clips)
  Factorio (7 clips)

? Which of the 21 clips? All of them
? Output directory /home/you/Videos
? Group exported videos into game folders? No
? How many parallel workers? (HDD source: 1-2, SSD source: 2-4) 2
? Delete the original Steam folders after a successful export? No
? Export 21 clips to /home/you/Videos with 2 workers? Yes

The menu remembers the output folder and worker count. Game grouping and source deletion are off by default each run.

Command line mode

Pass the same recording filters and export settings directly:

steamexporter --list-clips
steamexporter --process-all --group-by-game --output ~/Videos
steamexporter --help

Both modes detect existing exports in flat and game-folder layouts without moving them. Active background recordings are skipped; stop the game and wait up to a minute before retrying. Saved clips are unaffected.

Logs and disk space

Allow space for temporary streams as well as the final MP4 for each worker. Temporary files are removed on success or failure.

Logs include runtime versions, fragment counts and FFmpeg diagnostics:

  • Windows: %LOCALAPPDATA%\SteamGameRecordingExporter\logs\
  • macOS/Linux: ~/SteamGameRecordingExporter/logs/

--verbose also prints debug logs to the console.

Development

Requires Python 3.9+; uv can install it automatically.

git clone https://github.com/yb-yu/steam-game-recording-exporter.git
cd steam-game-recording-exporter
uv sync --extra dev
uv run steamexporter
uv run pytest -q
uv build

CI tests Python 3.9 and 3.14 on Linux, and 3.14 on macOS and Windows, including large recordings, concurrent exports and cleanup. Package checks run the built CLI without a source checkout.

Use the Git-ignored scratchpad/ for local experiments and tests/ for regression tests.

License

MIT License

Metadata

Release files for steam-game-recording-exporter 1.2.1

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

Source distribution (sdist)

Source distribution for steam-game-recording-exporter 1.2.1
File Size Uploaded
steam_game_recording_exporter-1.2.1.tar.gz 38.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for steam-game-recording-exporter 1.2.1
File Interpreter ABI Platform
steam_game_recording_exporter-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 64.5 kB

Release files / steam_game_recording_exporter-1.2.1.tar.gz

Download URL steam_game_recording_exporter-1.2.1.tar.gz
Size 38.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2b04e62b5a2bf6dde2c9073da97d8a6639342bde5fec9f3b15e6381221bf6126
BLAKE2b-256 checksum
How to use checksums
36feb4ee34e1d255c646a2d10a866293199baa0b88815de0d528953b188ef46e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / steam_game_recording_exporter-1.2.1-py3-none-any.whl

Download URL steam_game_recording_exporter-1.2.1-py3-none-any.whl
Size 26.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df4298ba9f31da4d8b3aa1997316381ff0857df8840449ea132192cd215e697c
BLAKE2b-256 checksum
How to use checksums
dc70a314ff34a1a634f5388e3a2fed1d7dcd5e1fd01790166262a12753bed387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

2 release files

This release

1.2.1 This release

2 release files

1.2.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