-
Notifications
You must be signed in to change notification settings - Fork 2
Features
boxlore provides a comprehensive suite of podcast listening, organization, and discovery capabilities, built on modern Android standards and local-first architecture.
boxlore features an advanced subscription management system that allows listeners to organize their subscribed podcasts into structured, customizable folders directly within the Subscriptions grid.
┌─────────────────────────────────────────────────────────────┐
│ Subscriptions Grid (3 Columns) │
│ │
│ ┌───────────────────────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Featured Folder (2×2) │ │ Show Card │ │ Show Card │ │
│ │ ┌───────┐ ┌───────┐ │ └───────────┘ └───────────┘ │
│ │ │Show A │ │Show B │ │ │
│ │ └───────┘ └───────┘ │ ┌───────────────────────────┐ │
│ │ ┌───────┐ ┌───────┐ │ │ Shelf Folder (3×1) │ │
│ │ │Show C │ │ +4 │ │ │ ┌───────┐ ┌───────┐ ┌───┐ │ │
│ │ └───────┘ └───────┘ │ │ │Show D │ │Show E │ │… │ │ │
│ └───────────────────────────┘ │ └───────┘ └───────┘ └───┘ │ │
│ └───────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
-
Adaptive Display Sizes (
FolderDisplaySize):-
COMPACT(1×1 tile): Minimalist folder tile. Can be rendered either as a single folder icon badge over blurred artwork or as a 2×2 mini-grid. -
FEATURED(2×2 tile): High-visibility square card accommodating up to 4 shows. -
SHELF(3×1 banner): Full-width horizontal strip spanning all 3 columns of the grid.
-
-
Direct Show Playback:
Unlike conventional folder implementations that require opening a container before interacting with contents, shows inside sized folders are directly clickable. Tapping an individual show cover immediately opens that podcast's details page without triggering the folder expansion sheet. -
Overflow Mini-Cluster (
+NBadge):
When a folder contains more shows than available slots, the final slot is rendered as a 2×2 mini-cluster overlay displaying a+Nbadge. Tapping the overflow badge or folder title smoothly expands the folder. -
Folder Expansion Sheet (
FolderExpandedSheet):
A modal bottom sheet that displays the full collection of shows inside the folder in a 3-column layout, complete with show count, folder editing shortcuts, and removal actions. -
Auto-Organize Library:
A single-tap utility that analyzes subscribed podcasts, groups them into sensible genre folders, sets appropriate display sizes, and deduplicates memberships automatically. -
Multi-Level Ordering:
Supports manual drag-and-drop ordering of root folders and shows, as well as independent intra-folder sorting.
Listeners can customize metadata for subscribed shows to personalize their library and filtering experience:
-
Subscribed Shows Exclusivity:
Custom tagging and icon customization are strictly scoped to subscribed podcasts. Non-subscribed shows always display canonical publisher metadata. -
Expressive Icon Palette:
Users can choose from a curated palette of 30+ Material rounded icons (including microphone, headphones, music, film, gaming, code/tech, ideas, science, books, finance, fitness, and news). -
Live Chip Feedback:
Assigned tags and icons immediately appear as interactive filter chips across the top of the Subscriptions view (SubscriptionsFilterRow), allowing instant filtering by custom tags. -
Auto-Reset Lifecycle Contract:
If a podcast is unsubscribed, all custom tags and icon overrides are immediately pruned from the database, ensuring the catalog reverts to its clean publisher baseline.
boxlore natively implements modern Podcasting 2.0 namespace specifications:
┌─────────────────────────────────────────────────────────────┐
│ Interactive Podcasting 2.0 Playback │
│ │
│ [00:04:12] Chapter 2: The Quantum Architecture [Skip >>] │
│ ────────────────────────●────────────────────────────────── │
│ │
│ Synced Transcript: │
│ "In this segment, we explore how modern distributed systems │
│ handle real-time streaming audio and synchronized data │
│ across edge networks." │
│ │
│ [Words highlight synchronously — click any word to seek] │
└─────────────────────────────────────────────────────────────┘
-
Interactive Audio Chapters:
Parses structured chapter JSON and RSS chapter tags. Chapters display titles, segment artwork, and reference URLs. Users can skip between segments using notched scrubbers and chapter lists. -
Show-Note Timestamp Fallback:
When an RSS feed lacks structured Podcasting 2.0 chapter metadata, boxlore runs a local heuristic regex parser on episode show notes (e.g.,00:14:32 - Architectural Decisions). It synthesizes interactive chapter markers on the fly so users can still jump directly to topics. -
Synchronized Transcripts & Word-Level Seek:
Parses SRT, VTT, JSON, and WebVTT transcript feeds. The text automatically scrolls in sync with playback. Tapping any word or paragraph instantly seeks the audio playback to that exact millisecond. -
Offline Chapter & Transcript Caching:
When an episode is downloaded, its associated chapter metadata and transcript files are downloaded and cached concurrently, ensuring full interactive functionality in airplane mode. -
Soundbites & Funding:
Displays audio soundbite previews (<podcast:soundbite>) and direct creator donation links (<podcast:funding>).
Media playback is powered by AndroidX Media3 (ExoPlayer) wrapped in a persistent foreground service (BoxLorePlaybackService):
-
Variable Speed & Pitch Correction:
Continuous playback speed adjustment from0.5xto3.0xusing Sonic audio processing with automatic pitch correction. -
Smart Silence Skipping & Volume Boost:
Configurable audio DSP stages that trim silence intervals dynamically and normalize dialogue volume across uneven podcast masters. -
Configurable Skip Intervals:
Independent forward and backward skip durations, accompanied by automated intro skipping (skip first$N$ seconds) and outro skipping. -
Sleep Timer:
Configurable countdown timer with gentle volume fade-out and an option to stop at the end of the current episode. -
Audio Focus Management:
Intelligent audio focus negotiation that automatically ducks volume for navigation cues and pauses for incoming voice calls. -
Video Podcast Playback:
Detects video enclosures and renders them with hardware-accelerated surface views, supporting orientation locking and Picture-in-Picture (PiP).
Queue management and offline media preparation operate as coordinated background pipelines:
-
Smart Queue Continuation:
Owned strictly byBoxLorePlaybackService. When the active queue approaches empty, the service automatically queues:- Upcoming unplayed episodes from the currently playing show.
- Partially played episodes from user listening history.
- Newly released episodes from subscribed podcasts.
- Contextual recommendations computed on-device.
-
Smart Downloads (
SmartDownloadWorker):
An automated WorkManager background worker that evaluates the queue and downloads episodes ahead of time. Operates within user-defined storage budgets (e.g., maximum episodes, storage caps) and network constraints (Wi-Fi only, charging only). -
Automated Disk Space Reclamation (
PurgeSmartDownloadsWorker):
Periodically identifies episodes that have been marked completed and purges their local media files, preventing cache bloat. -
Batch Download Management:
A multi-select management drawer allowing users to pause, resume, prioritize, or purge multiple downloads simultaneously.
-
Qdrant Concept Vector Search:
Enables semantic search by conceptual topics (e.g., "unsolved deep ocean mysteries" or "how memories consolidate during sleep"). Matches are fetched from high-dimensional vector embeddings, and the top semantic hit is elevated as a featured card. -
Curiosity Cards ("Lore" Deck):
An interactive, swipeable card deck on the Explore screen that surfaces curiosity-driven questions and narrative hooks that link directly to relevant podcast episodes. -
The Boxlore Brief:
An optional, region-specific (US, UK, India, France) daily audio news briefing assembled with interactive chapter breakdown and source citations.
-
Google Cast:
Integrated Google Cast SDK support enabling seamless media streaming to Chromecast devices, Google Nest smart speakers, and Android TVs with synchronized playback state. -
Android Auto:
A complete Android Auto media service adhering to Google's MediaLibrarySession design patterns. Categorizes content intoRecent,Subscriptions, andQueue. Includes disconnect/reconnect state recovery to ensure playback resumes smoothly when entering or exiting a vehicle. -
Home Screen Widgets (
:feature:widgets):
Native AndroidRemoteViewswidgets:- Now Playing Widget: Interactive controls, cover art, track progress, and quick play/pause.
- Subscriptions Widget: Grid view of subscribed shows.
- New Episodes Widget: List of recently published releases from followed podcasts.
boxlore provides a 100% fidelity export and restore engine utilizing a structured JSON schema (Version 6):
-
What is Backed Up:
- Complete subscription list and publisher metadata.
- Custom podcast tags and selected Material icons.
- Folder definitions, display sizes (
1×1,2×2,3×1), and show memberships. - Root and intra-folder manual order pins.
- Listening history, playback positions, and completion statuses.
- Global preferences, theme settings, audio playback defaults, and smart download rules.
- On-device adaptive ranking models and taste meters.
- Direct RSS feed overrides and supplement opt-ins.
-
Progress Reporting:
The restore engine displays real-time animated progress bars and itemized show counters (e.g., "Restoring subscriptions (14/42)..."), preventing ambiguity during large restores. -
Standard OPML Support:
Universal OPML file import and export to migrate subscriptions to and from other standard podcast applications.
- Features Overview
- Subscription Folders
- Custom Tags & Icons
- Podcasting 2.0 & Transcripts
- Playback Engine
- Smart Queue & Downloads
- Backup & Restore
boxlore · Local-First Podcast Platform