Automatic DVD, Blu-Ray, and UltraHD Blu-Ray ripping tool with intelligent metadata lookup and file organization.
See Requirements
dotnet run --project src/RipSharp -- --helpexport TMDB_API_KEY="your_key_here"
export OMDB_API_KEY="your_key_here"
export TVDB_API_KEY="your_key_here" # For TV episode titlesdotnet run --project src/RipSharp -- --output ~/Movies
dotnet run --project src/RipSharp -- --output ~/Movies --mode movie # explicitdotnet run --project src/RipSharp -- --output ~/TV --mode tv --title "Breaking Bad" --season 1# mode optional (auto-detect); set explicitly if you prefer
dotnet run --project src/RipSharp -- --output ~/Movies --title "The Matrix" --year 1999
dotnet run --project src/RipSharp -- --output ~/Movies --mode movie --title "The Matrix" --year 1999This will:
- Scan the disc (default:
disc:0) - Identify the main feature (45+ minutes)
- Rip with highest resolution, all English audio/subtitles
- Save as
~/Movies/The Matrix (1999).mkv
dotnet run --project src/RipSharp -- --output ~/TV --mode tv --title "Breaking Bad" --season 1This will:
- Scan the disc
- Identify all episodes (20-50 minutes each)
- Look up episode titles from TVDB (if API key provided)
- Rip each episode with English audio/subtitles
- Save as
~/TV/Breaking Bad - S01E01 - Pilot.mkv, etc.
| Option | Value | Default | Description |
|---|---|---|---|
--output |
PATH |
required | Output directory for ripped files |
--mode |
auto|movie|tv |
auto | Content type (auto-detect by default) |
--disc |
disc:N|/dev/... |
disc:0 |
Optical drive path |
--temp |
PATH |
{output}/.makemkv |
Temporary ripping directory |
--title |
TEXT |
(disc title) | Custom title for file naming |
--year |
YYYY |
(from metadata) | Release year (movies only) |
--season |
N |
1 |
Season number (TV only) |
--episode-start |
N |
1 |
Starting episode number (TV only) |
--disc-type |
dvd|bd|uhd |
auto-detect | Override disc type for size estimation |
--debug |
(flag) | false | Enable debug logging |
-h, --help |
(flag) | false | Show help message and exit |
export TMDB_API_KEY="your_tmdb_api_key" # Primary metadata source
export OMDB_API_KEY="your_omdb_api_key" # Fallback metadata source
export TVDB_API_KEY="your_tvdb_api_key" # TV episode titlesTo make permanent, add to ~/.bashrc, ~/.zshrc, or equivalent:
# ~/.bashrc or ~/.zshrc
export TMDB_API_KEY="your_tmdb_api_key"
export OMDB_API_KEY="your_omdb_api_key"
export TVDB_API_KEY="your_tvdb_api_key"Edit src/RipSharp/appsettings.yaml:
metadata:
lookup_enabled: true
omdb_api_key: "your_key"
tmdb_api_key: "your_key"Note: Environment variables override config file values.
-
MakeMKV - Disc ripping
-
FFmpeg - Media processing
# Ubuntu/Debian sudo apt-get install ffmpeg # macOS brew install ffmpeg # Fedora sudo dnf install ffmpeg
-
.NET SDK 10.0+ - Runtime
# Check version dotnet --versionGet from: https://dotnet.microsoft.com/download
-
API Keys (Optional but recommended)
- TMDB: https://www.themoviedb.org/settings/api (free)
- OMDB: https://www.omdbapi.com/apikey.aspx (free tier available)
- TVDB: https://thetvdb.com/api-information (free for personal use)
- DVD or Blu-Ray drive
- 5-100 GB free disk space (depending on disc type)
- Adequate processing power
git clone https://github.com/mapitman/RipSharp.git
cd RipSharp
dotnet restore src/RipSharp
dotnet build src/RipSharpThen verify it works (auto-detect by default):
dotnet run --project src/RipSharp -- --output /tmp/testThe app requires --output; --mode is optional and defaults to auto-detect (movie vs TV). See Command-Line Options above.
The application:
- Scans disc - Uses
makemkvconto identify all titles and their properties - Identifies content - Finds the main feature (movies) or episodes (TV series)
- Looks up metadata - Queries OMDB then TMDB for official titles and years; queries TVDB for TV episode titles
- Rips titles - Extracts using MakeMKV at highest available quality
- Selects tracks - Includes English audio and subtitles only
- Renames & saves - Moves to output directory with proper naming
Movies: Title (Year).mkv
Example: The Matrix (1999).mkv
TV Series: Show Name - S##E## - Episode Title.mkv
Example: Breaking Bad - S01E01 - Pilot.mkv, The Legend of Korra - S01E01 - Welcome to Republic City.mkv
Note: Episode titles are included when TVDB_API_KEY is set. Falls back to S##E## format without titles.
- Video: Highest resolution stream (copied, not re-encoded)
- Audio: All English stereo (2ch) and surround (5.1+) tracks
- Subtitles: All English subtitle tracks
RipSharp uses multiple metadata APIs to look up accurate titles, years, and episode information. While API keys are optional, they significantly improve the accuracy of file naming.
Purpose: Primary source for movie and TV series metadata (titles, years, series information)
Website: https://www.themoviedb.org/
Getting an API Key:
- Create a free account at https://www.themoviedb.org/signup
- Go to Settings → API: https://www.themoviedb.org/settings/api
- Request an API key (choose "Developer" option)
- Accept the terms and provide basic information about your use
- Copy your API Key (v3 auth)
Cost: Free for personal, non-commercial use
Set in environment:
export TMDB_API_KEY="your_api_key_here"Purpose: Fallback metadata source for movies and TV series
Website: http://www.omdbapi.com/
Getting an API Key:
- Visit http://www.omdbapi.com/apikey.aspx
- Select a plan (Free tier: 1,000 requests/day)
- Enter your email address
- Verify your email and activate the key
Cost: Free tier available (1,000 daily requests); paid tiers for higher volume
Set in environment:
export OMDB_API_KEY="your_api_key_here"Purpose: TV episode titles for accurate episode naming
Website: https://thetvdb.com/
Getting an API Key:
- Create a free account at https://thetvdb.com/auth/register
- Log in and go to your API keys page: https://thetvdb.com/dashboard/account/apikeys
- Create a new API key (v4 API)
- Copy the API key
Cost: Free for personal use
Set in environment:
export TVDB_API_KEY="your_api_key_here"- Movies: Queries OMDB first, then TMDB as fallback
- TV Series: Uses OMDB/TMDB for series name and year; queries TVDB for individual episode titles
- Fallback: If no API keys are set or lookup fails, uses disc title or generic naming
- Episode Titles: Without TVDB key, episodes are named
S##E##without episode titles
Ensure all dependencies are installed and in PATH:
which makemkvcon ffmpeg ffprobe- Insert disc and wait for it to be recognized
- Check if readable:
makemkvcon info disc:0 - Try alternate device:
--disc /dev/sr0or/dev/sr1
- DVD: 4-8 GB
- Blu-Ray: 15-35 GB
- UHD 4K: 40-100 GB
Ensure both --temp and --output directories have sufficient space.
Visit: https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053
Some systems require elevated permissions to access optical drives:
sudo dotnet run --project src/RipSharp -- --output ~/Movies --mode movieSee EXAMPLES.md for additional examples including:
metadata:
lookup_enabled: true
omdb_api_key: "your_omdb_api_key"
tmdb_api_key: "your_tmdb_api_key"
tvdb_api_key: "your_tvdb_api_key" # optional, issue #37 (in progress)- Container: Matroska (MKV)
- Video: Copied without re-encoding (preserves original codec and quality)
- Audio: Copied without re-encoding (AC3, DTS, TrueHD, etc.)
- Subtitles: Copied as-is (PGS, SRT, VobSub, etc.)
Typical times (varies by drive speed and disc condition):
| Type | Size | Time |
|---|---|---|
| DVD | 4-8 GB | 10-30 min |
| Blu-Ray | 15-35 GB | 30-90 min |
| UHD 4K | 40-100 GB | 60-180 min |
Personal use only. Ensure you own the physical media and comply with applicable copyright laws.
Contributions welcome! Please submit issues or pull requests.
- Check Troubleshooting above
- Open an issue on GitHub
- Visit MakeMKV forums
- MakeMKV - Disc ripping engine
- FFmpeg - Media processing