Skip to content

UnDadFeated/ChronoArchiver

Repository files navigation

ChronoArchiver

Desktop app for organizing media by date, batch-encoding video (AV1, H.265, H.264), and optional local AI tools (scanner, image/video upscalers). Cross-platform (Windows, Linux, macOS). Uses PySide6 and a private app environment—no need to install Python packages system-wide.

Version License: MIT Platforms

Get started

Installers (Windows & macOS): GitHub Releases (Release 6.6.4).

From source (Python 3.10+):

git clone https://github.com/UnDadFeated/ChronoArchiver.git
cd ChronoArchiver
python src/bootstrap.py

If the bundled environment breaks: python src/bootstrap.py --reset-venv.

Arch Linux: chronoarchiver — e.g. paru -S chronoarchiver or yay -S chronoarchiver.

Overview

Area Role
Media Organizer Sort files into date folders (EXIF, metadata, filename, or modified time). Supports remote directories via SSH/SFTP.
Mass Video Encoder Batch transcode with H.264, H.265, or AV1; software or hardware encoders when available. Supports remote paths with a prefetch pipeline and OpenSSH connection sharing.
AI Media Scanner Local OpenCV / ONNX classification and duplicate detection using dhash similarity grouping (no cloud upload). Supports remote scanning.
AI Image Upscaler Optional local AI image upscaling using RealESRGAN.
AI Video Upscaler Optional local AI video upscaling using RealESRGAN.

GPU support is optional; CPU paths are available. After launch, wait until the footer shows READY, then open a panel and set paths or models as prompted.

If something fails: wait for READY, use each panel’s install/setup actions for engines and models, or open HEALTH / the DEBUG log path from the footer. Offline-only work continues when the network is unavailable; downloads may show NO NETWORK.

Troubleshooting & Error Codes

The application includes a standardized error code system (E100 to E999) for easier diagnostics (defined in errors.py):

  • E1xx: Virtual environment creation, Python interpreter, or package setup failures.
  • E2xx: Media Organizer filesystem permissions, overlap, or EXIF issues.
  • E3xx: Mass Video Encoder FFmpeg initialization or process crashes.
  • E4xx: SSH/SFTP connection, authentication, command, or upload failures.
  • E5xx: AI Media Scanner ONNX runtime, OpenCV, or CUDA OOM issues.
  • E6xx / E7xx: PyTorch/RealESRGAN load, CUDA OOM, or muxing failures for upscalers.
  • E8xx: Model manager download timeouts or checksum hash mismatches.
  • E9xx: Unsupported OS platform, network connectivity, or disk issues.

For JSON logs: set CHRONOARCHIVER_JSON_LOG=1 before starting the app.

For crash diagnostics, the session debug log records PID and hints for gdb / core analysis. On Linux/macOS, if the app is hung (still running), kill -USR2 <pid> appends Python stack dumps to the same log; set CHRONOARCHIVER_GDB_BACKTRACE=1 before that signal to also attempt a live gdb thread apply all bt (requires gdb and ptrace permission). Fatal native crashes may still omit Python stacks; use core files + gdb as logged.

Privacy

Scanner and inference run on your machine unless you choose to move data elsewhere. See SECURITY.md for policy and reporting.

Repository

Resource Link
Changelog CHANGELOG.md
Contributing CONTRIBUTING.md
License LICENSE

Maintainer: UnDadFeated.

About

ChronoArchiver consolidates date-based file organization, AI-driven image analysis, and batch AV1 encoding into a single desktop application.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors