explaingit

authrequest/credit-detect

22PythonAudience · developerComplexity · 3/5LicenseSetup · hard

TLDR

A Python tool that finds where closing credits start and end in a video file by scoring each frame for low entropy, histogram peaks, and on-screen text, reverse-engineered from Plex Media Server's own credit-detection pipeline.

Mindmap

mindmap
  root((credit-detect))
    What it does
      Detects credit segments
      Returns start and end timestamps
    How it works
      Frame entropy scoring
      Histogram peak analysis
      Text region counting
      Five-stage pipeline
    Inputs
      Video file via ffmpeg
      Pre-extracted CSV features
    Tech Stack
      Python
      ffmpeg
      EAST text detector
    Use Cases
      Skip credits automatically
      Batch library processing
      Media server integration
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically detect credit start and end timestamps in a movie file so a media player can offer a skip-credits button.

USE CASE 2

Batch-process a local video library to tag credit positions for every file and store them in a database.

USE CASE 3

Run credit detection without ffmpeg by supplying a pre-extracted CSV of per-frame features, skipping the neural network entirely.

USE CASE 4

Integrate credit detection into a custom Plex-alternative media server to add automatic skip-credits functionality.

Tech stack

PythonffmpegEAST text detector

Getting it running

Difficulty · hard Time to first run · 1h+

The required neural network model (model_v1.pb) is not included and must be extracted from a Plex installation or trained separately, ffmpeg is required for direct video mode.

Licensed under AGPL-3.0: free to use and modify, but any modified version you distribute or run as a network service must also be released as open source under the same license.

In plain English

credit-detect is a Python tool that scans video files and identifies where the closing credits begin and end. It works by analyzing each frame for visual signals associated with credit sequences: low image entropy (the picture is mostly uniform or plain), strong histogram peaks, and the presence of text on screen. These three features are combined and scored to produce a time range marking the credit segment. The detection logic is described as a reverse-engineered version of the credit detection algorithm inside Plex Media Server, a popular home media application. The author traced through Plex's binary and reproduced its five-stage pipeline: candidate frame filtering, clustering consecutive candidates into runs, scoring each segment, merging nearby candidates, and applying duration and score thresholds to decide what qualifies as credits. The tool runs in two modes. In direct video mode, it accepts a video file, extracts frames using ffmpeg, and uses a neural network model to count text regions per frame. In CSV mode, it accepts a pre-extracted feature file with nine columns (frame index, timestamp, entropy, histogram peak ratio, and text detection values), which avoids the need for ffmpeg or the model entirely. The neural network model (a file called model_v1.pb) is not included in the project, because it is extracted from Plex's own scanner and its licensing is unclear. The README explains three options: extract it yourself from a Plex installation using a tool called binwalk, train a compatible replacement on a text-detection dataset, or skip the model and use CSV mode instead. The architecture is a standard EAST-style text detector, so any model trained on the same task works as a drop-in replacement. The project is licensed under AGPL-3.0 and requires Python 3.10 or newer.

Copy-paste prompts

Prompt 1
Using credit-detect in Python, show me how to run detection on a local .mkv file and print the timestamp range where the closing credits begin.
Prompt 2
I have a folder of .mp4 movies. Write a Python script using credit-detect to batch-process all files and save credit start and end times to a JSON file.
Prompt 3
How do I run credit-detect in CSV mode without ffmpeg or the neural network model? What are the nine required CSV columns?
Prompt 4
I want to train a replacement for the missing model_v1.pb text detection model. What EAST-style architecture and dataset should I use to produce a compatible drop-in?
Open on GitHub → Explain another repo

← authrequest on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.