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.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 steam-game-recording-exporter 1.2.0
File Size Uploaded
steam_game_recording_exporter-1.2.0.tar.gz 36.7 kB Details

Built distribution (wheel)

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

Total release size: 63.0 kB

Release files / steam_game_recording_exporter-1.2.0.tar.gz

Download URL steam_game_recording_exporter-1.2.0.tar.gz
Size 36.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cb974627e00d62c3c3921a555e1768f71bdb6b671bad067cba51c505e21c2095
BLAKE2b-256 checksum
How to use checksums
45abd3816331e5d2432865bc0186cd2b4d87638564da315efded9d11f42c75ef
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 22, 2026.

Transparency log

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

Download URL steam_game_recording_exporter-1.2.0-py3-none-any.whl
Size 26.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ba64c55d2c906c445f2f2028924e135727705b8f57ca5c6c07b41aac23befbd
BLAKE2b-256 checksum
How to use checksums
cfd64466f71012200de7c1d75c77735ffb4955f8801ad1a73e1069f161140389
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 22, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

2 release files

1.2.1

2 release files

This release

1.2.0 This release

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