Android TV anime streaming app. Bring your own torrent sources via HAP addons. https://hikariapp.cc/
  • Kotlin 87.1%
  • JavaScript 12.9%
Find a file
hflott ebc68190a2 fix: make Airing loading-state skeleton list scrollable
The final whole-branch review of the catalog-loading-placeholders plan
noted the loading branch listed all day-row skeletons in a plain
Column, so on a 1080p TV only ~2-3 of the 5 rows were reachable during
the brief load window. Switching to LazyColumn matches the real-content
branch's container and makes all placeholder rows scroll-reachable.
2026-07-07 20:55:09 +02:00
app fix: make Airing loading-state skeleton list scrollable 2026-07-07 20:55:09 +02:00
backend Fix airing schedule focus jumping, smooth TV navigation, and reduce home page stutter 2026-06-14 13:53:54 +02:00
baselineprofile fix: fail loudly instead of silently skipping a missed navbar destination 2026-07-03 22:11:00 +02:00
docs/superpowers docs: add implementation plan for catalog loading placeholders 2026-07-07 20:23:39 +02:00
gradle Improvements. TMDB metadata/episode stills and synopsis fixes. HeroBannerSlider improvements. Loading time improvements for fanart. 2026-05-02 18:47:11 +02:00
.gitignore chore: ignore local .worktrees/ directory 2026-07-04 20:33:08 +02:00
build.gradle.kts build: scaffold :baselineprofile module and wire baseline profile plugin into :app 2026-07-03 21:58:17 +02:00
compose_stability_config.conf perf: add Compose stability config to prevent CatalogSection recompositions 2026-06-18 23:48:11 +02:00
gradle.properties build: scaffold :baselineprofile module and wire baseline profile plugin into :app 2026-07-03 21:58:17 +02:00
gradlew Reworked entire app. 2026-04-01 16:17:46 +02:00
gradlew.bat Initial commit 2026-01-03 01:27:34 +01:00
LICENSE Add GNU GPL v3 license 2026-05-21 01:22:07 +02:00
lint.xml UI improvements in herobannerslider with proper animation and changed logo and backdrop provider to tmdb with fanart.tv as fallback. Player improvements: Skip intro works now as intended, both with or without autoskip. Fixes in focus handling. Better audio switch handling in player. Refactoring and performance fixes. 2026-05-06 15:17:18 +02:00
local.properties.example - Torrent streaming engine implemented. 2026-05-18 00:41:25 +02:00
README.md -Updated README.md 2026-05-21 01:15:14 +02:00
SECURITY.md - Added security policy. 2026-05-21 01:26:00 +02:00
settings.gradle.kts build: scaffold :baselineprofile module and wire baseline profile plugin into :app 2026-07-03 21:58:17 +02:00

Hikari

A bring-your-own-source torrent streaming client for anime on Android TV 📺

Warning

Hikari does not provide, host, or link to any content sources. Users must supply their own sources via addons.


✨ About

Hikari is a bring-your-own-source torrent streaming client built for Android TV. It streams torrents in real-time — no waiting for downloads to finish — and is designed to look and feel like a premium streaming service.

Important

Hikari is purely a torrent client and media player. It does not provide, index, host, or link to any content sources, torrent files, or unofficial repositories. Users are fully responsible for sourcing their own content legally and in compliance with their local laws.

Content is fetched through the Hikari Addon Protocol (HAP) — a simple addon interface you point at your own torrent source. Metadata and artwork are resolved through AniList, TMDB, Fanart.tv, and an optional self-hosted backend.


🌟 Highlights

  • 📋 AniList sync — Track progress, sync your lists, and pick up exactly where you left off
  • ⚡ Instant torrent streaming — Stream in real time with no waiting for full downloads
  • 🔌 HAP addon protocol — Connect your own torrent sources without touching app code
  • 🎬 Full-featured TV player — Audio track selection, subtitle support, auto-skip, autoplay
  • 🏠 Rich home screen — Hero banner, curated genre rows, continue watching, trending & popular
  • 🔒 No content provided — You control your sources; no takedowns, no disappearances

🏆 Features

📚 Anime Management

  • Full AniList account integration with QR-code login (no client secret required on the TV)
  • Sync watch progress, episode counts, and list status automatically
  • AniList status indicators on posters and episode cards
  • Continue watching row with per-episode progress tracking
  • My List tab pulling directly from your AniList lists
  • Season navigation and "More like this" on the details screen
  • Episode list with stills, descriptions, and air date info
  • Long-press episode cards to mark as watched or clear progress
  • Home feed with hero banner, genre rows, trending, popular, and recently aired

🎥 Video Player

  • Real-time torrent streaming — playback starts immediately
  • Preferred audio language selection (Japanese, English, Korean, Chinese, Auto)
  • Subtitle track selection with language preference (English, Japanese, Spanish, French, German, Portuguese, Chinese, Arabic, and more)
  • Auto-skip intro and outro using AniSkip timestamps
  • Autoplay next episode when the current one ends
  • Episode thumbnail previews (toggleable for spoiler-sensitive users)
  • Title language preference — Romaji, English, or native script
  • Consistent playback resume across sessions

🔌 HAP Addons

  • Connect your own torrent source via the Hikari Addon Protocol
  • Addon management screen — add, remove, enable/disable sources
  • Intelligent torrent ranking by resolution, encode quality, release group, and seeder count
  • Preferred resolution setting (480p → 2160p) with smart tier matching — 4K sources surface even when 1080p is preferred
  • Movie and series support with episode-aware filtering
  • Batch torrent support for series packs

🖥️ Android TV Experience

  • Built for D-pad and remote navigation throughout
  • Hero banner slider with logo artwork and accent color theming
  • Focus-aware UI with smooth transitions and reveal animations
  • Poster context menus with long-press
  • Side menu navigation

⚙️ Setup

App

  1. Copy local.properties.example to local.properties
  2. Fill in your API keys and backend URL:
TMDB_API_KEY=
FANART_API_KEY=
IDS_MOE_API_KEY=
TVDB_API_KEY=
ARTWORK_BACKEND_URL=http://192.168.x.x:8080   # optional, but recommended
APP_VERSION_NAME=1.0.8
  1. Build and install:
./gradlew assembleDebug

The backend resolves backdrop images, logos, episode stills, and handles AniList OAuth for the TV app. It runs as a local Node.js server on your network.

cd backend
cp .env.example .env   # fill in your keys
npm install
node server.mjs

Requires Node.js 18+. See backend/README.md for full setup, AniList OAuth configuration, and public/preview build instructions.


🔨 Building

Build type Command Notes
Debug .\gradlew.bat assembleDebug Embeds upstream API keys from local.properties
Preview .\gradlew.bat assemblePreview Strips upstream keys; uses TESTER_BACKEND_URL
Release .\gradlew.bat assembleRelease Requires signing config and RELEASE_BACKEND_URL (HTTPS)

Release builds require RELEASE_STORE_FILE, RELEASE_STORE_PASSWORD, RELEASE_KEY_ALIAS, RELEASE_KEY_PASSWORD, and RELEASE_BACKEND_URL set in local.properties.

If java is not on your PATH, point it at Android Studio's bundled JDK first:

$env:JAVA_HOME = "C:\Program Files\Android\Android Studio\jbr"
$env:PATH = "$env:JAVA_HOME\bin;$env:PATH"
.\gradlew.bat assembleRelease

Note

Hikari does not provide any torrent sources, indexes, or addon repositories. All content must be supplied by the user through their own HAP-compatible addon.