TalkBack-first Android RSS and podcast client, port of BlindRSS
  • Kotlin 99.3%
  • Python 0.7%
Find a file
serrebidev 5bf1ea5209 v0.13.0: research round + iOS parity ports
Research (AUDIT.md has the full per-platform record):
- NewPipeExtractor rejected again with fresh evidence (GPL-3.0/AGPL vs
  this app's MIT license; still no Mixcloud or account surface).
- SmartTube/MediaServiceCore audit (both MIT): YouTube account sign-in
  ported as an independent implementation of the TV device-code flow -
  client constants scraped at runtime from the TV client's base.js, so
  no Brandon Google Cloud project is involved. YouTube home view shows
  recommendations + subscriptions shelf.
- Groups.io member-only archives via the user's own API key (encrypted).
- Sign-in-only Google Groups via WebView sign-in cookie capture +
  cookies.txt import into the existing encrypted cookie store.
- Chromecast: Google's default media receiver needs no registration
  (old 'needs owner credentials' claim refuted); DLNA kept.
- Wayback CDX podcast archive recovery (keyless).

Parity ports: YouTube Takeout ZIP import (was absent), ordered filter
pipeline with stop, category rename/delete, age retention + delete
behaviour + confirm, reader presentation toggles, search scope,
restore-last-view, Open Article/Media by URL, feed description +
Reset Title, 9 new directory sources (fyyd, Podverse, Feedly, NewsBlur,
Reddit, Lemmy, Groups.io, Feedspot + Google/Bing News), schema v4,
keyboard shortcuts, built-in guide updated.

Translations: English source of truth 58 -> 187 strings (settings
detail, player, provider setup, discover, ListReading speech templates);
tools/gen_locales.py regenerates all 15 locales from the desktop
gettext catalogs. Tests: 81 (70 + 11 new), all green; assembleDebug
green; APK verified org.blindrss.android v0.13.0 (17), minSdk 26.
2026-10-26 08:55:39 +00:00
.firecrawl BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
app v0.13.0: research round + iOS parity ports 2026-10-26 08:55:39 +00:00
docs/agents docs: configure Matt Pocock engineering skills 2026-10-22 15:21:55 -07:00
gradle/wrapper BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
third_party v0.7.0: full podcast player, background audio, yt-dlp 2026-10-20 03:36:25 -07:00
tools v0.13.0: research round + iOS parity ports 2026-10-26 08:55:39 +00:00
ytdl Stop tracking ytdl build output 2026-10-20 03:40:03 -07:00
.gitignore Stop tracking ytdl build output 2026-10-20 03:40:03 -07:00
.gitmodules v0.7.0: full podcast player, background audio, yt-dlp 2026-10-20 03:36:25 -07:00
AGENTS.md docs: document the Android build and release path 2026-10-26 00:31:17 -07:00
AUDIT.md v0.13.0: research round + iOS parity ports 2026-10-26 08:55:39 +00:00
build.gradle.kts BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
gradle.properties BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
gradlew BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
gradlew.bat BlindRSS for Android v0.1.0 2026-10-19 20:52:46 -07:00
LICENSE chore: add MIT license 2026-10-20 11:28:51 -07:00
README.md v0.10.0: desktop parity pass — subscribe shortcuts (YouTube playlists, Mastodon/Bluesky/PieFed/GitHub), directory search (Feedsearch/Mastodon/Bluesky/PieFed), YouTube article full text, Reddit/Lemmy thread reading, fetch identity (UA presets + clearance cookies), refresh chime, offline user guide 2026-10-26 06:20:40 +00:00
settings.gradle.kts v0.7.0: full podcast player, background audio, yt-dlp 2026-10-20 03:36:25 -07:00

BlindRSS for Android

TalkBack-first Android port of desktop BlindRSS (Python/wxPython v2.3.9). Kotlin + Jetpack Compose, Room, WorkManager, Media3 ExoPlayer. minSdk 26, targetSdk 35.

See AUDIT.md for the full feature/provider matrix, accessibility notes, and known gaps.

Build

Windows (JDK 21, Android SDK at %LOCALAPPDATA%\Android\Sdk):

gradlew.bat testDebugUnitTest assembleDebug

Debug APK: app/build/outputs/apk/debug/app-debug.apk (signed with debug key).

Features

  • Local RSS/Atom/RDF/JSON-Feed, OPML import/export, URL feed discovery (YouTube channel/playlist, Reddit, Lemmy/PieFed, Mastodon, Bluesky and GitHub shortcuts)
  • Hosted sync: Miniflux, Inoreader, The Old Reader, BazQux, Feedbin, Google Reader/FreshRSS, Fever, NewsBlur
  • All/Unread/Read/Favorites, categories, Smart Folders, Deleted restore/purge, Feeds-with-errors, filter rules
  • Edit feed: rename, move to another category, change a local feed's address (synced to your provider)
  • Full-text extraction, search, podcast playback (speed, seek, chapters, sleep timer, offline downloads, resume)
  • YouTube videos read as articles (description, chapters, transcript, top comments); Reddit and Lemmy threads read whole
  • Directory search: Apple Podcasts, gPodder, Feedsearch, Mastodon, Bluesky, PieFed
  • Configurable browser identity and clearance cookies for bot-protected feeds; refresh complete sound
  • Offline user guide (Home menu and Settings > About)
  • Background sync with new-article notifications, per-feed mute
  • TalkBack: labelled controls, merged article rows with custom actions, headings, live-region sync announcements

Providers setup

Build: clone with --recursive (or run git submodule update --init); yt-dlp support comes from the third_party/youtubedl-kotlin submodule.

Settings → Add provider → pick one → enter credentials → Sign in. The login is tested before anything is saved; a first sync runs after. Credentials are stored encrypted (Android Keystore AES-GCM). Inoreader: paste an OAuth access token (App ID/Key fields provided).