Skip to content

Repository files navigation

Polski · English · 简体中文

Kanarek

Kanarek

Android news reader and widget with a background radio/IPTV player.

android CI worker CI last commit license
Kotlin TypeScript Cloudflare Worker
DeepWiki

Kanarek combines two tools in one native application:

  • an RSS/Atom reader with an auto-rotating home-screen news widget,
  • a background internet radio and IPTV player with its own transport-control widget.

An optional Cloudflare Worker accelerates fetching and provides additional network features. It is not required: ordinary RSS/Atom feeds can be parsed directly on the device.

Highlights

News

  • resizable slideshow widget with manual navigation and per-widget settings,
  • custom RSS 2.0 and Atom sources with OPML import and export,
  • local search, source filters, and an optional headline-ranking mode,
  • read state, saved articles, and optional offline clean text,
  • clean article preview when a trusted Worker backend is configured,
  • optional new-story notifications with quiet hours,
  • last-known-good stories stay visible when an individual source temporarily fails.

Radio and IPTV

  • background Media3/ExoPlayer playback with system media controls,
  • M3U/M3U8 import, export, and editing,
  • radio, television, channel groups, favorites, and now-playing metadata,
  • station discovery through the Radio Browser directory,
  • missing channel logos filled through iptv-org and favicon fallbacks,
  • playlist-provided User-Agent and Referer support,
  • Google Cast in the play flavor; the foss flavor is Google-services-free.

Install

APK.

  • play: includes Google Cast support,
  • foss: GMS-free build intended for FOSS and F-Droid environments.

The minimum supported system is Android 8.0 (API 26).

Quick start

  1. Install the preferred APK flavor.
  2. Open Kanarek and choose News or Radio & TV.
  3. Add RSS/Atom sources or import an OPML file.
  4. Add stations manually, search the radio directory, or import an M3U/M3U8 playlist.
  5. Long-press the Android home screen, open Widgets, and add either Kanarek widget.

The Backend URL may remain blank: regular feed refreshes stay on-device, while feed discovery, station search, and logo lookup can use Kanarek's built-in default service. Set your own Worker URL only when you want normal feed refreshes routed through that Worker or operator-controlled features such as clean-reader extraction and synchronized state.

Documentation

Kanarek was developed inside trvny/feeds until August 2026 and was extracted into this repository with its full history.

Development

The Gradle wrapper scripts are intentionally not committed. On a fresh clone, install the exact Gradle version declared by gradle/wrapper/gradle-wrapper.properties, then bootstrap the wrapper before using it:

GRADLE_VERSION=$(sed -n 's#^distributionUrl=.*/gradle-\([0-9][A-Za-z0-9.-]*\)-\(bin\|all\)\.zip$#\1#p' gradle/wrapper/gradle-wrapper.properties)
command -v gradle >/dev/null || { echo "Install Gradle $GRADLE_VERSION first" >&2; exit 1; }
gradle --version | grep -F "Gradle $GRADLE_VERSION" >/dev/null || { echo "Use Gradle $GRADLE_VERSION to bootstrap the wrapper" >&2; exit 1; }
gradle wrapper --gradle-version "$GRADLE_VERSION" --no-daemon
./gradlew assembleDebug
./gradlew testPlayDebugUnitTest

License


💬 Quote from the drawer

❝“Code generation, like drinking alcohol, is good in moderation.”— Alex Lowe❞

📰 Recently on the air

About

🐤 Kanarek aplikacja na Android z workerem Cloudflare

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages