itsmejoeeey
linkarr
Python

Organize your media library with ease - without moving or duplicating your files!

Last updated Jun 21, 2026
99
Stars
2
Forks
1
Issues
0
Stars/day
Attention Score
3
Language breakdown
Python 98.7%
Dockerfile 1.3%
โ–ธ Files click to expand
README

Linkarr

Linkarr - Media Organizer

Organize your media library with ease - without moving or duplicating your files!

  • ๐Ÿ“ฆ No file moving/copying: Monitors for changes, and then organizes your media with symlinks only.
  • ๐Ÿงฒ Perfect for seeding/usenet: Works with files managed by torrent or usenet clients.
  • ๐ŸŽฌ Jellyfin ready: Import organized folders directly into your media server.
  • ๐Ÿณ Easy Docker deployment: Run anywhere, just map your folders.

Example:

| | ๐Ÿ“‚ Before (Source Folder) | ๐Ÿ“‚ After (Organized Folder) | |---|-----------------------------|-------------------------------| | TV | /media/TV/
โ””โ”€ ๐Ÿ“‚Show.Name.S01/
    โ”œโ”€โ”€ Show.Name.S01E01.1080p.mkv
    โ””โ”€โ”€ Show.Name.S01E02.1080p.mkv
โ””โ”€๐Ÿ“‚ Show.Name.S02/
    โ”œโ”€โ”€ Show.Name.S02E01.1080p.mkv
    โ””โ”€โ”€ Show.Name.S02E02.1080p.mkv
โ””โ”€โ”€ Another.Show.Name.S04E07.1080p.mkv | /organized/TV/
โ””โ”€๐Ÿ—‚๏ธ Show Name/
    โ””โ”€๐Ÿ“‚ Season 01/
        โ”œโ”€๐Ÿ”— Show.Name.S01E01.1080p.mkv
        โ””โ”€๐Ÿ”— Show.Name.S01E02.1080p.mkv
    โ””โ”€๐Ÿ“‚ Season 02/
        โ”œโ”€๐Ÿ”— Show.Name.S02E01.1080p.mkv
        โ””โ”€๐Ÿ”— Show.Name.S02E02.1080p.mkv
โ””โ”€๐Ÿ—‚๏ธ Another Show Name/
    โ””โ”€๐Ÿ“‚ Season 04/
        โ””โ”€๐Ÿ”— Show.Name.S04E07.1080p.mkv | | Movies | /media/Movies/
โ””โ”€๐Ÿ“‚ Movie.Title.2023.1080p/
    โ””โ”€โ”€ Movie.Title.2023.1080p.mkv
โ””โ”€โ”€ Another.Movie.Title.2024.1080p.mkv | /organized/Movies/
โ””โ”€๐Ÿ“‚ Movie Title (2023)/
    โ””โ”€๐Ÿ”— Movie.Title.2023.1080p.mkv
โ””โ”€๐Ÿ“‚ Another Movie Title (2024)/
    โ””โ”€๐Ÿ”— Another.Movie.Title.2024.1080p.mkv |


Getting started

๐Ÿš€ Docker Usage (Recommended)

Docker Hub

You will need Docker installed on your system.

Important: You must map your source and destination folders to the same paths inside the container as on your host system. This ensures symlinks work correctly.
docker run -d \
  -v /path/to/source:/path/to/source \
  -v /path/to/organized:/path/to/organized \
  -v $(pwd)/config.json:/config/config.json \
  itsmejoeeey/linkarr:latest

Or with Docker Compose:

services:
  my-linkarr:
    image: itsmejoeeey/linkarr:latest
    container_name: linkarr
    # Pass in your config file below, by specifying the path on your host machine
    volumes:
      - /path/to/source:/path/to/source
      - /path/to/organized:/path/to/organized
      - ./config.json:/config/config.json
    restart: unless-stopped
See Configuration for details on configuring.

- Make sure to provide a valid config.json. - Replace /path/to/source and /path/to/organized with your actual media paths.

Running manually

  • Install dependencies:
python -m venv venv
   source venv/bin/activate
   pip install -r requirements.txt
  • Copy and edit the example config:
cp config.example.json config.json
   # Edit config.json to match your source/destination folders and preferences
  • Run the organizer:
cd src
   python -m linkarr.main ../config.json

Configuration

See config.example.json and src/linkarr/config.schema.json for configuration options.

Development

See here for further information.

ยฉ 2026 GitRepoTrend ยท itsmejoeeey/linkarr ยท Updated daily from GitHub