guessit
GuessIt - a library for guessing information from video filenames.
What it is and what it does
GuessIt is a Python library that parses video filenames to extract structured metadata. Given a filename like 'Shameless.US.S05E10.720p.HDTV.x264-KILLERS.mkv', it returns a dictionary with title, season, episode, resolution, source, codec, release group, container, and media type. It works with both movie and TV episode filenames, handling a wide variety of naming conventions and abbreviations.
The library relies on pattern matching and rule-based extraction via its dependency on Rebulk. It is maintained actively, supports modern Python versions, and has no known security vulnerabilities. The three runtime dependencies (babelfish, python-dateutil, rebulk) are lightweight and add minimal installation overhead. GuessIt is useful for media center applications, download managers, and any tool that needs to organize or catalog video files by their filenames.
Use it for:
- Organize downloaded TV episodes and movies into a media library by automatically extracting season/episode numbers and titles.
- Build a download manager that renames files consistently based on parsed metadata (title, year, resolution, codec).
- Populate a media database by bulk-parsing a folder of video files to extract and validate metadata.
- Filter or sort video files by properties like codec, resolution, or release group extracted from filenames.
- Validate that a video file's name matches expected metadata before processing or archiving it.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
GuessIt extracts structured metadata from video filenames, parsing titles, seasons, episodes, codecs, resolutions, and release information from both movies and TV show files.
Yes. GuessIt is actively maintained, has low install friction, carries no known vulnerabilities, and solves a concrete problem for media-handling tools. The LGPL-3.0-or-later license is permissive for most use cases but requires attention if you are building a proprietary application. Install it if you need to parse video filenames; skip it if your filenames follow a rigid, custom format you can parse with simpler regex.
Install
guessit on PyPI
pip
pip install guessituv
uv add guessitpoetry
poetry add guessitInstalling guessit
Before you install
Low install friction with a pure-Python wheel and only three runtime dependencies. Actively maintained with a release 14 days old and recent commits; the project has 929 GitHub stars and supports current Python versions (3.10 through 3.14).
License in practice
Licensed under LGPL-3.0-or-later (copyleft). You may use and modify GuessIt freely, but any derivative work must also be distributed under a compatible copyleft license; proprietary applications cannot link it without legal review.
Quickstart
pip install guessit
from guessit import guessit
result = guessit('The.Matrix.1999.1080p.BluRay.x264-GROUP.mkv')
print(result['title'], result['year'], result['video_codec'])
Requires Python 3.10 or later.
Verify before relying
- Accuracy and coverage of filename patterns across different regional naming conventions and edge cases.
- Performance characteristics when processing large batches of filenames.
- Whether the library handles non-English or mixed-language filenames reliably.
Package facts
| License | LGPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — babelfish, python-dateutil, rebulk |
| Maintenance | actively maintained — 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 164,370/month — #10,550 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: guessit-4.4.0-py3-none-any.whl
Keywords: animes, episodes, filename, library, movies, name, parser, python, release, series
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
knowitExtracts detailed metadata from media files…
permissive · top 15,000 on PyPI
trakitParses track names and filenames to extract…
permissive · top 15,000 on PyPI
cinemagoerCinemagoer retrieves and queries movie, actor,…
copyleft · top 15,000 on PyPI
wheel-filenameParse and validate wheel filenames according to…
permissive · top 15,000 on PyPI
comment-parserExtracts comments from source code files across…
permissive · top 15,000 on PyPI
typecodeDetects file types and MIME types using…
permissive · top 15,000 on PyPI
filetypeInfers file type and MIME type by examining…
permissive · top 1,000 on PyPI
scenedetectDetects scene cuts and shot changes in videos,…
permissive · top 5,000 on PyPI
codespellCodespell finds and fixes common misspellings…
copyleft · top 5,000 on PyPI
moviepyMoviePy is a Python library for video editing…
permissive · top 5,000 on PyPI