AddictedProxy (Gestdown) is a .NET 10 subtitle platform exposing a public REST API and Nuxt frontend for searching and downloading subtitles.
- Serves subtitle search and download endpoints used by Gestdown clients.
- Merges subtitle data from multiple providers into a unified show/episode/subtitle model.
- Supports provider-routed downloads (provider selected from subtitle source metadata).
- Runs scheduled and on-demand background jobs for refresh/import pipelines.
- Provides observability via OpenTelemetry, Sentry, and Prometheus-friendly metrics.
- Addic7ed: fully integrated for show/season/episode refresh and subtitle download.
- SuperSubtitles: integrated through gRPC client and ingestion pipeline:
- one-time bulk import job
- recurring incremental refresh job (15-minute cadence)
- provider-aware subtitle download routing
The docs/ folder is the source of truth for architecture and subsystem details:
- Architecture overview
- Database schema
- Provider system
- API surface
- Background jobs
- Multi-provider plan
- Multi-provider checklist
- Backend: .NET 10, ASP.NET Core, EF Core 10, PostgreSQL
- Frontend: Nuxt 4, Vue 3, Vuetify 3
- Jobs: Hangfire + PostgreSQL storage (+ Hangfire.Console)
- Caching: PostgreSQL + optional Redis + in-memory
- Observability: OpenTelemetry, Sentry, Prometheus
- Containerization: Docker / Docker Compose
docker compose up -ddotnet restore
dotnet run --project AddictedProxy/AddictedProxy.csprojcd addicted.nuxt
pnpm install
pnpm devdotnet build -c Release
dotnet test -c Release
docker build -t addictedproxy .- Settings live in
AddictedProxy/appsettings.jsonandAddictedProxy/appsettings.Development.json. - Environment variable prefix is
A7D_. - SuperSubtitles import/refresh controls are under
SuperSubtitles:Import(EnableImport,EnableRefresh,BatchSize, delays).
| Project | Description |
|---|---|
AddictedProxy |
Main ASP.NET Core app (controllers, jobs, services) |
AddictedProxy.Database |
Entities, EF Core context, repositories, migrations |
AddictedProxy.Upstream |
Addic7ed client/downloader/parser |
SuperSubtitleClient |
SuperSubtitles gRPC client |
AddictedProxy.Services.Tests |
Service-level tests |
AddictedProxy.Upstream.Tests |
Upstream integration/unit tests |
addicted.nuxt |
Nuxt frontend |