No description
Find a file
Cody Kickertz 82f3d2da51
feat(qualities): add book and audiobook quality definitions (#120)
* feat(db): add MediaType discriminator to Movies table

Adds foundation for multi-media support by:
- Adding MediaType column to Movies table (migration 244)
- Adding MediaType property to Movie entity, defaulting to Movie

Existing movies will have MediaType=1 (Movie) after migration.
This prepares for future Book and Audiobook media types.

Addresses Issue #1

* refactor(core): create MediaItem abstract base class

Extracts common properties from Movie into a new MediaItem base class:
- MediaType, Monitored, QualityProfileId
- Path, RootFolderPath, Added, Tags, LastSearchTime

Movie now inherits from MediaItem and implements abstract methods
GetTitle() and GetYear() while maintaining backward-compatible
Title/Year property accessors.

This prepares for Book and Audiobook entities that will share
the same base structure.

Addresses Issue #1

* feat(core): add Author and Series entities for hierarchical monitoring

Introduces hierarchical structure for books/audiobooks:
- Author entity: tracks authors with monitoring, quality profiles, paths
- Series entity: groups books/audiobooks by series, linked to Author
- MediaItem: adds AuthorId and SeriesId for hierarchy support
- Migration 245: creates Authors and Series tables, adds columns to Movies

This enables Author → Series → Item monitoring inheritance for
future book and audiobook support.

Addresses Issue #2

* feat(core): add generic IProvideMediaInfo interface

Introduces generic metadata provider interfaces:
- IProvideMediaInfo<T>: Base interface for all metadata providers
  - GetByExternalId, GetById, GetBulkInfo
  - GetTrending, GetPopular, GetChangedItems
- ISearchableMediaProvider<T>: Search capability interface
  - SearchByTitle with optional year filtering

These interfaces establish the contract for future book and
audiobook metadata providers while maintaining compatibility
with the existing IProvideMovieInfo.

Addresses Issue #3

* feat(qualities): add book and audiobook quality definitions

Add quality source types and definitions for eBooks and audiobooks:
- EBOOK source: Unknown, EPUB, MOBI, AZW3, PDF, TXT
- AUDIOBOOK source: Unknown, MP3-128, MP3-320, M4B, FLAC

Quality definitions include appropriate size limits for each format.
New qualities auto-seed to database via QualityDefinitionService on startup.

Closes #4, Closes #5

---------

Co-authored-by: admin <admin@ardentleatherworks.com>
2025-12-21 19:51:20 -06:00
.devcontainer
.github fix(ci): make test failures block builds (#105) 2025-12-21 13:59:45 -06:00
.husky fix(ci): add CODEOWNERS, enable test blocking, add pre-commit hooks 2025-12-19 11:03:07 -06:00
.vscode
distribution
docker
docs docs: Update Radarr references to Aletheia and document test suite status (#113) 2025-12-21 14:50:10 -06:00
frontend fix(frontend): use ref to avoid stale movies closure in search (#103) 2025-12-21 12:27:41 -06:00
Logo
research docs: Update Radarr references to Aletheia and document test suite status (#113) 2025-12-21 14:50:10 -06:00
schemas
scripts
src feat(qualities): add book and audiobook quality definitions (#120) 2025-12-21 19:51:20 -06:00
.editorconfig chore: update GitHub Actions and consolidate .editorconfig rules (#85) 2025-12-19 20:00:23 -06:00
.gitattributes
.gitignore
.secretlintrc.json [WIP] Fix open issues after research and analysis (#110) 2025-12-21 14:19:46 -06:00
.yarnrc
azure-pipelines.yml
build.sh
CHANGELOG.md
CLA.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md [WIP] Fix open issues after research and analysis (#110) 2025-12-21 14:19:46 -06:00
docs.sh
global.json
LICENSE
package-lock.json fix: resolve build errors from Copilot API response code changes (#115) 2025-12-21 15:17:37 -06:00
package.json docs: Update Radarr references to Aletheia and document test suite status (#113) 2025-12-21 14:50:10 -06:00
README.md [WIP] Fix open issues after research and analysis (#110) 2025-12-21 14:19:46 -06:00
SECURITY.md
sonar-project.properties refactor: notification provider deduplication + docs (#81) 2025-12-19 19:35:14 -06:00
test.sh
tsconfig.json
yarn.lock fix: resolve build errors from Copilot API response code changes (#115) 2025-12-21 15:17:37 -06:00

Aletheia

All-in-one media manager for movies, books, and audiobooks.

Overview

Aletheia (from Greek ἀλήθεια - "truth, disclosure") is a unified media management system forked from Radarr. It provides automated monitoring, downloading, and library management for multiple media types through a single interface. It's an ambitious attemp to merge much of the functionality of the arr apps. This, in addition to many personal feature requests, QoL improvements, and privacy/security updates.

Current Status: Active development. Movie functionality inherited from Radarr is working. Multi-media foundation being implemented.

Features

Movies (working):

  • Automated monitoring and quality upgrades
  • Metadata and artwork management
  • Integration with download clients and indexers

Books (in development):

  • EPUB, MOBI, PDF quality tracking
  • Author and series hierarchy
  • Goodreads/Hardcover metadata

Audiobooks (in development):

  • M4B, MP3, etc. support
  • Narrator tracking
  • Duration metadata and Audible integration

General:

  • Usenet and BitTorrent support
  • SABnzbd, NZBGet, qBittorrent, Deluge, rTorrent, Transmission integration
  • Plex and Kodi integration
  • Built-in archive extraction (Unpackerr functionality)

Privacy

Telemetry and analytics are disabled by default:

  • No usage analytics or behavior tracking
  • No machine fingerprinting or unique identifiers
  • Error reporting (Sentry) is opt-in
  • Update checks only send version and platform info (no personal data)

To enable error reporting for troubleshooting, toggle Analytics in Settings → General.

What data is collected if you opt-in:

  • Anonymous error reports via Sentry (stack traces, OS version, app version)
  • No personally identifiable information is ever collected

Quick Start

docker run -d \
  --name=aletheia \
  -e PUID=1000 \
  -e PGID=1000 \
  -p 7878:7878 \
  -v /path/to/config:/config \
  -v /path/to/media:/media \
  --restart unless-stopped \
  ghcr.io/cheir-mneme/aletheia:latest

Web interface: http://localhost:7878

Building from Source

Requirements: .NET 8.0 SDK, Node.js 20+, Yarn

git clone https://github.com/cheir-mneme/aletheia.git
cd aletheia
./build.sh --backend --frontend
dotnet run --project src/Radarr

Roadmap

See ROADMAP.md for detailed phase planning.

Completed:

  • Phase 0-1: Privacy & security fixes
  • Phase 2: Foundation (fork, CI/CD, branding)
  • Phase 2.5: Community standards, quality gates, Unpackerr absorption

Current:

  • Phase 3: Multi-media foundation (database generalization, indexer management)

Planned:

  • Phase 4: Books & audiobooks support
  • Phase 5: TV shows
  • Phase 6: Music (with fingerprinting and quality analysis)
  • Phase 7: Subtitles (Bazarr replacement), podcasts, comics

Contributing

See CONTRIBUTING.md for development setup, code guidelines, and PR process.

Development standards:

  • Conventional commits (feat:, fix:, docs:, etc.)
  • Feature branches + PRs to develop
  • Pre-commit hooks for linting

License

GNU GPL v3

Aletheia is a derivative of Radarr. Copyright 2010-2025.