Slipstream's goal is to provide the user's a dead-simple process for backing up their legally owned home-media to a wide array of formats, including a full backup. Slipstream is a desktop GUI application.
It's trying to be different from the other solutions out there by providing as much information about the home-media as one could need while being stupid simple to use.
- Craft GUI with Qt.
- Create a file based settings system.
- Add drive selection option.
- Add DVD backup support, using libdvdcss.
- Add information window with details about the DVD ISO.
- Write PyInstaller spec file.
- Add information window with details about the DVD-Video data, like Layer count, titles, languages, subtitles, codecs, e.t.c.
- Add support for remuxing to Matroska Video (MKV) with MKVToolnix.
- Add the ability to choose to remux by Title ID's.
- Add the ability to choose to remux by VOB ID, and VOB CELL's.
- Add the ability to choose which tracks of a title to output rather than all available.
- Add Blu-ray backup support, using libaacs.
This project is managed using uv, an extremely fast Python package and project manager. Install the latest version of uv before continuing. Development currently requires Python 3.11+.
Starting from Zero? Not sure where to begin? Here's steps on setting up this Python project using uv. Note that uv installation instructions should be followed from the uv Docs: https://docs.astral.sh/uv/getting-started/installation
-
Clone the Repository:
git clone --recurse-submodules https://github.com/rlaphoenix/slipstream cd slipstream -
Install the Project with uv:
uv sync --all-extras --all-groups
This creates a Virtual environment at
.venvand then installs all project dependencies and executables into the Virtual environment. Your System Python environment is not affected at all. -
Now activate the Virtual environment:
.venv\Scripts\activate
(or
source .venv/bin/activateon macOS and Linux)Note:
- You can alternatively just prefix
uv runto any command you wish to run under the Virtual environment. - I recommend entering the Virtual environment and all further instructions will have assumed you did.
- JetBrains PyCharm and Visual Studio Code both detect the
.venvVirtual environment automatically. - For more information, see: https://docs.astral.sh/uv/concepts/projects/
- You can alternatively just prefix
-
Install Pre-commit tooling to ensure safe and quality commits:
uv tool install pre-commit --with pre-commit-uv --force-reinstall pre-commit install
Now feel free to work on the project however you like, all code will be checked before committing.
Launch the app with uv run python -m pslipstream.
If you make any changes to the QT UI file (main_window.ui), then you must run .\make.ps1 to re-compile it to its
Python file.
uv sync --group pack
uv run python pyinstaller.py
You may do both .exe and Folder builds. See --one-file in pyinstaller.py.
The frozen build will be available in the /dist folder.
- Install the Inno Setup Compiler.
- Right-click the setup.iss file in the root folder and click Compile. The version is read
automatically from
pyproject.toml. - The Windows Installer will be available in the
/distfolder.
This software is licensed under the terms of GNU General Public License, Version 3.0.
You can find a copy of the license in the LICENSE file in the root folder.
- Music disc icons created by Freepik - Flaticon
- Info icons created by Freepik - Flaticon
- Refresh icons created by Pixel perfect - Flaticon
© rlaphoenix 2020-2026

