14 releases
Uses new Rust 2024
| new 0.1.13 | Mar 3, 2026 |
|---|---|
| 0.1.12 | Jan 27, 2026 |
| 0.1.5 | Dec 31, 2025 |
#50 in Video
71KB
1.5K
SLoC
mediar
A command-line tool for organizing your media library using The Movie Database (TMDB) API. Automatically renames and organizes TV shows and movies into a structured directory layout with proper metadata.
Features
- Smart Media Detection: Automatically identifies TV shows and movies from filenames
- TV Show Organization: Structures episodes by show name, season, and episode
- Movie Organization: Organizes movies with title and year
- Multiple Operations: Move, copy, or hard-link files
- TMDB Integration: Fetches accurate metadata from The Movie Database
- Search Capability: Search for TV shows and movies with filtering options
- Safe Operations: Preview changes before execution with confirmation prompts
Installation
cargo install mediar
Configuration
Set the TMDB API token environment variable (Get one here):
export TMDB_API_TOKEN=your_tmdb_api_token_here
Usage
Search for Media
Search for TV shows and movies to find their TMDB IDs:
$ mediar search 'star trek generation'
╭─────┬────┬────────────────────────────────┬────┬──────┬──────┬──────────────────────────────────────╮
│ ID │ │ Name │ 🌐 │ ⭐ │ Year │ TMDB Link │
├─────┼────┼────────────────────────────────┼────┼──────┼──────┼──────────────────────────────────────┤
│ 655 │ 📺 │ Star Trek: The Next Generation │ en │ 59.4 │ 1987 │ https://www.themoviedb.org/tv/655 │
│ 193 │ 🎬 │ Star Trek: Generations │ en │ 2.9 │ 1994 │ https://www.themoviedb.org/movie/193 │
╰─────┴────┴────────────────────────────────┴────┴──────┴──────┴──────────────────────────────────────╯
Found 23 results (1 TV, 22 movies)
Organize TV Shows
Link TV show episodes into a structured directory:
mediar link --tv-id tv_id /path/to/source /path/to/target
Example
$ tree
.
├── HandBrake Encodings
│ ├── Star.Trek.The.Next.Generation.S01E01.mkv
│ ├── Star.Trek.The.Next.Generation.S01E02.mkv
│ ├── Star.Trek.The.Next.Generation.S02E01.mkv
│ └── Star.Trek.The.Next.Generation.S02E02.mkv
└── Shows
3 directories, 4 files
$ mediar search 'star trek the next generation'
╭─────┬────┬────────────────────────────────┬────┬──────┬──────┬───────────────────────────────────╮
│ ID │ │ Name │ 🌐 │ ⭐ │ Year │ TMDB Link │
├─────┼────┼────────────────────────────────┼────┼──────┼──────┼───────────────────────────────────┤
│ 655 │ 📺 │ Star Trek: The Next Generation │ en │ 54.9 │ 1987 │ https://www.themoviedb.org/tv/655 │
╰─────┴────┴────────────────────────────────┴────┴──────┴──────┴───────────────────────────────────╯
Found 19 results (1 TV, 18 movies)
$ mediar link --tv-id 655 -y HandBrake\ Encodings Shows/
Link: HandBrake Encodings/Star.Trek.The.Next.Generation.S01E01.mkv
↪ To: Shows/Star Trek The Next Generation (1987)/Season 01/Star Trek The Next Generation - S01E01 - Encounter at Farpoint.mkv
Link: HandBrake Encodings/Star.Trek.The.Next.Generation.S01E02.mkv
↪ To: Shows/Star Trek The Next Generation (1987)/Season 01/Star Trek The Next Generation - S01E02 - The Naked Now.mkv
Link: HandBrake Encodings/Star.Trek.The.Next.Generation.S02E01.mkv
↪ To: Shows/Star Trek The Next Generation (1987)/Season 02/Star Trek The Next Generation - S02E01 - The Child.mkv
Link: HandBrake Encodings/Star.Trek.The.Next.Generation.S02E02.mkv
↪ To: Shows/Star Trek The Next Generation (1987)/Season 02/Star Trek The Next Generation - S02E02 - Where Silence Has Lease.mkv
✓ Done.
$ tree
.
├── HandBrake Encodings
│ ├── Star.Trek.The.Next.Generation.S01E01.mkv
│ ├── Star.Trek.The.Next.Generation.S01E02.mkv
│ ├── Star.Trek.The.Next.Generation.S02E01.mkv
│ └── Star.Trek.The.Next.Generation.S02E02.mkv
└── Shows
└── Star Trek The Next Generation (1987)
├── Season 01
│ ├── Star Trek The Next Generation - S01E01 - Encounter at Farpoint.mkv
│ └── Star Trek The Next Generation - S01E02 - The Naked Now.mkv
└── Season 02
├── Star Trek The Next Generation - S02E01 - The Child.mkv
└── Star Trek The Next Generation - S02E02 - Where Silence Has Lease.mkv
6 directories, 8 files
Organize Movies
Organize movies by title and year:
# Interactive organization
mediar link --movie-id movie_id /path/to/source /path/to/target
Example
$ tree
.
├── HandBrake Encodings
│ └── Star.Trek.Generations.mkv
└── Movies
3 directories, 1 file
$ mediar search 'star trek generations'
╭─────┬────┬────────────────────────┬────┬─────┬──────┬──────────────────────────────────────╮
│ ID │ │ Name │ 🌐 │ ⭐ │ Year │ TMDB Link │
├─────┼────┼────────────────────────┼────┼─────┼──────┼──────────────────────────────────────┤
│ 193 │ 🎬 │ Star Trek: Generations │ en │ 2.8 │ 1994 │ https://www.themoviedb.org/movie/193 │
╰─────┴────┴────────────────────────┴────┴─────┴──────┴──────────────────────────────────────╯
Found 2 results (0 TV, 2 movies)
$ mediar link --movie-id 193 -y HandBrake\ Encodings Movies/
Link: HandBrake Encodings/Star.Trek.Generations.mkv
↪ To: Movies/Star Trek Generations (1994)/Star Trek Generations (1994).mkv
✓ Done.
$ tree
.
├── HandBrake Encodings
│ └── Star.Trek.Generations.mkv
└── Movies
└── Star Trek Generations (1994)
└── Star Trek Generations (1994).mkv
4 directories, 2 files
Copy or Move Instead of Linking
# Copy files (keeps originals)
mediar copy --tv-id tv_id /path/to/source /path/to/target
# Move files
mediar move --movie-id movie_id /path/to/source /path/to/target
Supported File Formats
- Video:
.mp4,.mkv,.avi,.mov,.flv,.wmv,.webm - Subtitles:
.srt
License
Licensed under the MIT License. See LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Dependencies
~16–36MB
~505K SLoC