Commit Graph

1082 Commits

Author SHA1 Message Date
4efdce8983 feat(frontend): add Vue 3 web application
Some checks failed
Build_Subgen_Dockerfile_CPU / docker (push) Failing after 27s
Build_Subgen_Dockerfile_GPU / docker (push) Has been cancelled
- Add Vue 3 + TypeScript + Pinia setup
- Add 6 complete views: Dashboard, Queue, Scanner, Rules, Workers, Settings
- Add Pinia stores for state management
- Add API service with Axios client
- Add dark theme with Tdarr-inspired styling
- Add setup wizard component
- Add path browser for filesystem navigation
2026-01-16 16:59:15 +01:00
a14d13c9d0 feat(cli): add CLI interface and setup wizard
- Add CLI with server, db, worker, scan, setup commands
- Add interactive setup wizard for first-run configuration
- Add FastAPI application with lifespan management
- Update requirements.txt with all dependencies
2026-01-16 16:58:20 +01:00
6272efbcd5 feat(api): add REST API with 45+ endpoints
- Add workers API for pool management
- Add jobs API for queue operations
- Add scan-rules API for CRUD operations
- Add scanner API for control and status
- Add settings API for configuration management
- Add system API for resource monitoring
- Add filesystem API for path browsing
- Add setup wizard API endpoint
2026-01-16 16:57:59 +01:00
c019e96cfa feat(workers): add multiprocessing worker pool system
- Add Worker class with CPU/GPU support
- Add WorkerPool for orchestrating multiple workers
- Support dynamic add/remove workers at runtime
- Add health monitoring with graceful shutdown
2026-01-16 16:56:42 +01:00
cbf5ef9623 feat(transcription): add Whisper transcriber and audio utilities
- Add WhisperTranscriber wrapper for stable-ts/faster-whisper
- Add audio utilities for ffmpeg/ffprobe operations
- Add translator for two-stage translation workflow
- Support CPU/GPU with graceful degradation
2026-01-16 16:55:02 +01:00
d28c4caa6a feat(scanning): add library scanner with rules engine
- Add ScanRule model with configurable conditions
- Add FileAnalyzer for ffprobe-based media analysis
- Add LibraryScanner with manual, scheduled and watcher modes
- Add LanguageDetector for audio language detection
- Support rule-based filtering with priority evaluation
2026-01-16 16:54:41 +01:00
58c565cd96 feat(core): add database, models, queue and settings system
- Add SQLAlchemy database setup with session management
- Add Job model with status, priority and progress tracking
- Add QueueManager with priority queue and deduplication
- Add SystemSettings model for database-backed configuration
- Add SettingsService with caching and defaults
- Add SystemMonitor for CPU/RAM/GPU resource monitoring
- Add LanguageCode utilities (moved from root)
2026-01-16 15:11:30 +01:00
9594c0b8ab refactor(config): simplify to database-backed settings
- Reduce .env.example to only DATABASE_URL
- Simplify backend/config.py to only read database connection
- All other settings now managed via database and Web UI
2026-01-16 15:11:02 +01:00
8373d8765f docs: add comprehensive project documentation
- Replace original Subgen README with TranscriptorIO documentation
- Add docs/API.md with 45+ REST endpoint documentation
- Add docs/ARCHITECTURE.md with backend component details
- Add docs/FRONTEND.md with Vue 3 frontend structure
- Add docs/CONFIGURATION.md with settings system documentation
- Remove outdated backend/README.md
2026-01-16 15:10:41 +01:00
9655686a50 chore: cleanup legacy files and update gitignore
- Remove obsolete Docker files (will be recreated later)
- Remove legacy launcher.py and transcriptarr.py
- Remove subgen.xml configuration
- Remove test_backend.py (tests will be restructured)
- Remove language_code.py from root (moved to backend/core/)
- Update .gitignore for Python project structure
2026-01-16 15:10:14 +01:00
8acbe84b15 chore: update project structure and workflows
- Update .gitignore for new backend structure
- Update GitHub workflows for transcriptarr rename
- Update launcher.py to use new module name
2026-01-11 21:37:23 +01:00
4e9e3c4159 docs: add comprehensive documentation and test suite
- Add CLAUDE.md with project architecture and operation modes
- Add backend/README.md with setup and usage instructions
- Add test_backend.py with automated tests for config, database, and queue
- Update requirements.txt with optional dependencies structure
- Update .env.example with all configuration options
2026-01-11 21:37:20 +01:00
7959210724 feat: add centralized configuration system with Pydantic
- Add backend/config.py with Pydantic settings validation
- Support for standalone, provider, and hybrid operation modes
- Multi-database backend configuration (SQLite/PostgreSQL/MariaDB)
- Environment variable validation with helpful error messages
- Worker and Whisper model configuration
2026-01-11 21:23:45 +01:00
McCloudS
ad0bdba03d Fix double task_done in ASR/detect-language handlers (#262)
All checks were successful
Update_CalVer_Amend / docker (push) Successful in 24s
2026-01-10 22:59:03 +00:00
McCloudS
11cca018ae Check model existence before unloading
Add a check to ensure model exists before unloading.
2026-01-07 22:17:19 +00:00
McCloudS
948d44ca66 Remove unused import statement for cutil
Removed unused import of cutil.
2026-01-07 21:33:27 +00:00
McCloudS
809f1a055d Import cutil and ctypes for memory optimization
Added ctypes and cutil imports for memory management.
2026-01-07 19:13:28 +00:00
McCloudS
594b78b84f Refactor transcription worker error handling
Might fix CPU memory leak.
2026-01-07 18:39:30 +00:00
McCloudS
7373f9a87b Change runner to self-hosted for GPU build 2025-12-13 14:15:57 -05:00
McCloudS
1f428eabf9 Update GitHub Actions workflow for GPU build 2025-12-13 12:58:21 -05:00
McCloudS
a0778e7220 Remove local Docker artifacts cleanup step
Removed cleanup step for local Docker artifacts after job completion.
2025-12-13 12:46:14 -05:00
McCloudS
6e99826c9e Downgrade CUDA base image version in Dockerfile
Not worth the other broken stuff to save ~1gb of space for now...
2025-12-13 12:34:08 -05:00
McCloudS
8bbf9eff6f Remove disk cleanup step from build_GPU workflow
Removed pre-job step for cleaning up disk space.
2025-12-13 12:12:20 -05:00
McCloudS
512a8a473b Update CUDA base image version in Dockerfile 2025-12-13 12:09:10 -05:00
McCloudS
771ec16597 Update GitHub Actions workflow for GPU build 2025-12-13 12:06:50 -05:00
McCloudS
c0cc23b5a9 Enhance GPU build workflow with disk cleanup steps
Added pre-job and post-job steps for disk cleanup in the GPU build workflow.
2025-12-13 12:00:42 -05:00
McCloudS
44acb13e2b Update CUDA base image version in Dockerfile
Trying to shrink the image...
2025-12-13 11:48:46 -05:00
McCloudS
9e5d9229e9 Force /batch to require a string 2025-11-23 20:36:59 +00:00
McCloudS
dc0cb72b3d Add timestamps to regular logging. 2025-09-17 14:11:06 +00:00
McCloudS
34df085cfe Add curl to image 2025-08-30 09:19:38 -04:00
McCloudS
12a5e1803b Add curl to image 2025-08-30 09:19:27 -04:00
McCloudS
fc3b7b0bd4 Update subgen.py 2025-08-28 23:52:45 +00:00
McCloudS
8c598007e5 Clarify if we're transcribing or translating from Bazarr 2025-08-28 23:36:16 +00:00
McCloudS
298dcd74a9 Standardize environment variable naming with backwards compatibility (#229)
- Add get_env_with_fallback() helper function for seamless migration
- Implement consistent UPPERCASE_WITH_UNDERSCORES naming convention
- Group variables by logical categories (PLEX_*, JELLYFIN_*, PROCESS_*, SKIP_*, etc.)
- Maintain full backwards compatibility with legacy variable names
- Add comprehensive documentation explaining new naming convention

New standardized names with backwards compatibility:
- PLEX_TOKEN (was PLEXTOKEN)
- PLEX_SERVER (was PLEXSERVER)
- JELLYFIN_TOKEN (was JELLYFINTOKEN)
- JELLYFIN_SERVER (was JELLYFINSERVER)
- PROCESS_ADDED_MEDIA (was PROCADDEDMEDIA)
- PROCESS_MEDIA_ON_PLAY (was PROCMEDIAONPLAY)
- SUBTITLE_LANGUAGE_NAME (was NAMESUBLANG)
- WEBHOOK_PORT (was WEBHOOKPORT)
- SKIP_IF_EXTERNAL_SUBTITLES_EXIST (was SKIPIFEXTERNALSUB)
- SKIP_IF_TARGET_SUBTITLES_EXIST (was SKIP_IF_TO_TRANSCRIBE_SUB_ALREADY_EXIST)
- SKIP_IF_INTERNAL_SUBTITLES_LANGUAGE (was SKIPIFINTERNALSUBLANG)
- SKIP_SUBTITLE_LANGUAGES (was SKIP_LANG_CODES)
- SKIP_IF_AUDIO_LANGUAGES (was SKIP_IF_AUDIO_TRACK_IS)
- SKIP_ONLY_SUBGEN_SUBTITLES (was ONLY_SKIP_IF_SUBGEN_SUBTITLE)
- SKIP_IF_NO_LANGUAGE_BUT_SUBTITLES_EXIST (was SKIP_IF_LANGUAGE_IS_NOT_SET_BUT_SUBTITLES_EXIST)

Migration is seamless - both old and new names work simultaneously.
New names take precedence when both are set.

Tested: All mappings, type conversions, precedence logic, and syntax validation.
2025-08-27 00:48:04 +00:00
McCloudS
9879e2d4b9 Prepare for pull 229 changes in the readme 2025-08-26 20:47:36 -04:00
McCloudS
405476ca87 Fix subtitle checking logic to properly separate internal vs external subtitle detection (#228)
- Line 1139: Change has_subtitle_language() to has_subtitle_language_in_file() for SKIPIFINTERNALSUBLANG check
- Line 1148: Change has_subtitle_language() to has_subtitle_of_language_in_folder() for SKIPIFEXTERNALSUB check

This fixes the logic conflict where:
- SKIPIFINTERNALSUBLANG should only check for internal/embedded subtitles
- SKIPIFEXTERNALSUB should only check for external subtitle files

Previously both were using has_subtitle_language() which checks both internal AND external,
causing incorrect skip behavior when users wanted to generate subtitles despite having
internal subtitles but skip when external subtitle files exist.
2025-08-22 03:21:11 +00:00
McCloudS
94cc7c5005 fix naming subtitles again 2025-08-12 12:03:59 +00:00
McCloudS
51ca07ddf4 Update README.md 2025-08-12 07:59:47 -04:00
McCloudS
41b843965d Fix subtitle naming for distil 3.5
Original function split on '.' which broken naming with models with decimals.
2025-08-12 11:58:30 +00:00
v3DJG6GL
67f0bf1404 fix "SUBGEN_KWARGS" example (#209)
I think the example is wrong here. The values should be passed as boolean and float instead of strings.
Not sure but I suppose this issue was caused by this. I at least got the exact same error message: https://github.com/McCloudS/subgen/issues/114
2025-05-14 19:06:20 -06:00
McCloudS
04026c3b64 Revert Logging Change 2025-05-14 15:59:22 +00:00
McCloudS
c80b5db14d Fix terrible hierarchy of environment/external variables
DEBUG should be respected now.
2025-05-14 09:57:43 -06:00
McCloudS
d9febbe991 Fix Uvicorn logger overwriting Subgen logging 2025-05-14 14:47:44 +00:00
McCloudS
2b0f0fc478 Fix calling an empty environment variable 2025-05-11 01:31:49 +00:00
McCloudS
5e209bfc0c Add "Known Issues" 2025-05-03 10:08:58 -06:00
McCloudS
b73c32aa71 Update README.md 2025-05-02 09:40:07 -06:00
McCloudS
4b2407b370 Update README.md 2025-05-02 09:33:09 -06:00
McCloudS
89e0556930 Add option to remove subgen and model name from subtitle filename 2025-05-02 15:32:01 +00:00
McCloudS
49d85bf939 Update Dockerfile 2025-03-28 03:04:45 -06:00
McCloudS
ec2b636ee0 Add tzdata for TZ env variable 2025-03-27 19:37:38 -06:00