Skip to content

wastaken7/BluLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Blu-ray Extras Hardlinker for Plex and Jellyfin

A desktop utility built with Python and Tkinter designed to simplify the organization of Blu-ray extra features. This tool scans Blu-ray stream files (.m2ts), allows for easy renaming according to Plex and Jellyfin standards, and creates hardlinks to your media library to save disk space.

Features

  • Automatic Scanning: Detects .m2ts files in a selected directory or within the BDMV/STREAM structure.
  • Media Metadata: Integrates with ffprobe to display the duration of each video file.
  • Size Filtering: Filter out small files (like menu loops) based on a configurable minimum size.
  • Standardized Suffixes: Built-in support for Plex/Jellyfin extra types:
    • -behindthescenes
    • -deleted
    • -featurette
    • -interview
    • -scene
    • -short
    • -trailer
    • -other
  • Hardlink Creation: Creates links rather than copies, ensuring no additional disk space is consumed (requires source and destination to be on the same drive).
  • Log Generation: Automatically generates a log file in BBCode format containing a table of original paths vs. new filenames.
  • Sortable Interface: Sort files by name, size, or duration to identify content more easily.

Prerequisites

  • Python 3.x: The application is written in Python.
  • FFmpeg (ffprobe): Required to detect video duration. Ensure ffprobe is installed and available in your system's PATH.
  • Tkinter: Usually included with Python installations (on Linux, you may need to install python3-tk).

Configuration

The application expects a configuration file located in data/config.py. Simply rename the existing file called example-config.py to config.py.

  • default_destination_folder: A string representing the default path where links will be created.
  • create_subfolder: A boolean (True/False) to determine if a folder with the movie name should be created at the destination.
  • min_file_size_mb: An integer to filter out files smaller than this value.
  • default_sort: A string ('name', 'size', or 'duration') for the initial list order.

Usage

  • Launch the application:
    python blulink.py

  • Select Source: Click "Browse" next to Source Folder and select the root folder of your Blu-ray rip or the STREAM folder.

  • Configure Destination: Ensure the Destination Folder path is correct.

  • Scan and Identify:

    • Double-click a filename in the list to open it in your default media player for identification.
    • Enter a descriptive name in the "New Name" field.
    • Select the appropriate "Extra Type" from the dropdown menu.
  • Process: Click "Process and Create Hardlinks". The application will create the links and generate a log file in the log/ directory.

Technical Notes

  • Hardlink Requirement: Hardlinks can only be created within the same physical drive/partition. If you attempt to link across different drives, the operation will fail.
  • Security: The application uses os.link for file operations. Ensure the user running the script has write permissions for both source and destination folders.
  • OS Compatibility: Supports Windows, macOS, and Linux.

About

A desktop utility built with Python and Tkinter designed to simplify the organization of Blu-ray extra features.

Resources

Stars

Watchers

Forks

Contributors

Languages