No description
Find a file
wander 88bc8229c9
All checks were successful
Docker Build / build (push) Successful in 13s
fix: resolve path mismatch in destruct mode and prevent empty folder creation
2026-03-08 05:41:54 -04:00
.gitea/workflows Update .gitea/workflows/docker-build.yml 2026-03-08 04:02:03 -04:00
templates chore: rename TA Organizer to TubeSorter and setup gitea actions 2026-03-08 01:51:48 -05:00
ui feat: enhance permission logging and display detailed errors in UI 2026-03-08 05:25:11 -04:00
.gitignore chore: ignore browser-extension and archive files 2026-02-04 16:33:11 -05:00
docker-compose.yml chore: rename TA Organizer to TubeSorter and setup gitea actions 2026-03-08 01:51:48 -05:00
Dockerfile feat: modernize UI with Astro+Svelte and optimize Docker build 2026-02-04 15:30:04 -05:00
README.md chore: rename TA Organizer to TubeSorter and setup gitea actions 2026-03-08 01:51:48 -05:00
requirements.txt Add Basic Auth and optimize Docker build 2026-01-04 23:15:17 -05:00
ta-organizerr.tar.gz feat: modernize UI with Astro+Svelte and optimize Docker build 2026-02-04 15:30:04 -05:00
ta_symlink.py fix: resolve path mismatch in destruct mode and prevent empty folder creation 2026-03-08 05:41:54 -04:00
TASTY.tar.gz feat: modernize UI with Astro+Svelte and optimize Docker build 2026-02-04 15:30:04 -05:00
test_api.py feat: Introduce scheduled background scanning, old folder cleanup, and optimize metadata fetching with updated Docker configuration and API tests. 2025-11-20 01:45:38 -05:00

TubeSorter

📂 Automatically organizes TubeArchivist downloads into human-readable folder structures using symlinks and metadata.


Features

  • Organizes downloaded videos by:
    • Channel name
    • Publish date
    • Video title
  • Uses TubeArchivists API to fetch video metadata
  • Creates symbolic links — leaving original files untouched
  • Dockerized for easy deployment
  • Supports Unraid and other Docker environments

🚀 Getting Started

Requirements

  • Python 3.11+
  • Docker + Docker Compose
  • A running TubeArchivist instance

🔧 Configuration

Create a .env file in the root of the repo:

# Required
API_TOKEN=your_api_token_here

# Optional overrides
API_URL=http://localhost:8457/api
VIDEO_URL=http://localhost:8457/video

🐳 Docker Usage

  1. Clone this repo and navigate into it:
git clone https://github.com/Salpertio/tubesorter.git
cd tubesorter
  1. Edit the docker-compose.yml to point to your source/target folders:
volumes:
  - /your/path/to/downloaded/videos:/app/source:ro
  - /your/target/path:/app/target
  1. Run the container:
docker compose up --build

📁 Example Output Structure

/app/target/
├── Channel Name/
│   ├── 2025-01-01 - Example Title/
│   │   └── video.mp4 (symlink)

🧰 Troubleshooting

If the script silently skips some files, ensure:

  • The video exists in TubeArchivist
  • Metadata is accessible via the API
  • The video_id matches the filename stem

🛡️ License

MIT — do whatever you want, just give credit if you use it.


🙌 Credits

Built by Salpertio to tame the TubeArchivist folder jungle 🌴