Files
agora/docs/agora-requirements-08-library.org

117 lines
4.0 KiB
Org Mode

#+TITLE: Agora Requirements - 08: Library
#+author: Amero Garcia
#+created: [2026-03-16 Mon 14:28]
#+DATE: 2026-03-14
#+ID: agora-requirements-07-library
#+STARTUP: content
* Library
** Concept
The Library is a unified content archiving and media management system. It works like a unified *arr suite (Sonarr, Radarr, Readarr, etc.) that builds your personal libraries across all content types.
** Supported Content Types
- Video (movies, TV shows, educational content)
- Audio (podcasts, music, audiobooks)
- Photos (personal albums, professional portfolios)
- Text (books, articles, documents)
- Maps (geographic data, custom itineraries)
- Physibles (physical object designs, 3D models)
- Manufacturing Processes (recipes, procedures, blueprints)
** Architecture
The Library consists of three core components:
*** Downloaders
- Content acquisition tools that fetch media from various sources
- Support for torrents, Usenet, direct downloads, and IPFS
- Integration with content discovery networks
- Automated quality selection and format conversion
- Metadata fetching from external databases
*** Indexers
- Local search and categorization of library content
- Full-text search across documents, subtitles, metadata
- Tag-based organization (genre, year, creator, etc.)
- Content deduplication via CID comparison
- Integration with Agora's discovery layer for shared content
*** Library Managers
- Content organization and presentation interfaces
- Unified browsing across all content types
- Playlist and collection creation
- Offline sync for mobile clients
- Sharing controls (personal, collective, public)
** Content Addressing
All Library content is stored as CIDs:
- Original files content-addressed for integrity
- Metadata stored as separate Content Objects
- Thumbnails and previews generated and addressed separately
- Version history maintained via CID chains
** Archiving
*** Concept
Archiving preserves Content Objects and open web content for long-term access, creating personal or collective knowledge repositories that outlive the ephemeral nature of streams.
*** CID Content Archiving
**** Personal Archives
- Users can archive any CID-based content they have access to (public or decrypted)
- Archive creates local copy with full CID verification
- Archived Content Objects retain original metadata and provenance
- Cross-references to related CIDs preserved
**** Collective Archives
- Library Collectives can curate themed archives (e.g., "Climate Science", "Digital Art History")
- Distributed storage across multiple PDS nodes for redundancy
- Version tracking as Content Objects are updated
*** Open Web Archiving
**** Web Archiver Tools
- Archive any URL to content-addressed storage
- WARC (Web ARChive) format support for fidelity
- Text extraction for full-text indexing
- Media extraction and separate CID addressing
**** Link Rot Prevention
- Replace dead links with archived CID versions
- "Archive this" browser extension for one-click saving
- Automatic archival of links referenced in user's content
**** Archival Standards
- Memento Protocol support for temporal negotiation
- Archive verification via multiple sources (Wayback Machine, Archive.today, personal PDS)
- Content authenticity via hash verification against original
*** Integration with Agora
- Library content can be referenced in posts, messages, and profiles
- Content can be shared via Relays with appropriate encryption
- Micro-payments for premium content access
- Syndication to Agora-aware browsers and gateways
** Requirements
- The system MUST support unified content management across all media types.
- The system MUST content-address all library items via CID.
- The system MUST support local indexing for fast search.
- The system MUST allow content sharing via Agora's social layer.
- The system MUST support offline access for synced content.
- The system MUST integrate with Agora's economic layer for paid content.
** Related Documents
- [[id:agora-content-primitives][Agora Unified Content Primitive]]
- [[id:agora-pds-relay-architecture][Agora PDS & Relay Architecture]]