Subtitle Sync is a powerful and flexible tool designed to simplify subtitle synchronization.
Refactored `Program` to use scoped service providers for database context initialization, ensuring proper dependency management. Updated `SyncEngine` to use `using` statements with scoped service providers for better resource disposal. Reorganized `using` directives in `SyncEngine.cs` for clarity. Refactored the `Sync` method to streamline logic, reduce redundancy, and improve maintainability. Replaced direct modification of `syncIndexEntity` with the addition of new `SyncIndex` entities for consistency. Enhanced logging for better traceability and reorganized operations to align with best practices for dependency injection and database context management. |
||
|---|---|---|
| .forgejo/workflows | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| Dockerfile | ||
| README.md | ||
| renovate.json | ||
| subtitle-sync.csproj | ||
| subtitle-sync.sln | ||
Subtitle Sync
Subtitle Sync is a powerful and flexible tool designed to simplify subtitle synchronization. It supports both one-time and scheduled syncing, offering compatibility with multiple synchronization engines. Subtitle Sync intelligently detects changes to the media, subtitles, or sync engine and only re-syncs when necessary; ensuring optimal performance and efficiency.
Supported Sync Engines
| Supported | SyncEngine |
|---|---|
| ✔️ | Alass |
| ✔️ | AutoSubSync |
| ✔️ | FFSubSync |
Usage
services:
subtitle-sync:
image: "code.neureka.dev/tools/subtitle-sync"
container_name: "subtitle-sync"
env_file: ".env"
volumes:
- "./data:/app/data"
- "$MEDIA_DIRECTORY:/media"
command: ["sync", "/media", "--service"]
restart: "unless-stopped"