- Kotlin 87.1%
- JavaScript 12.9%
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. |
||
|---|---|---|
| app | ||
| backend | ||
| baselineprofile | ||
| docs/superpowers | ||
| gradle | ||
| .gitignore | ||
| build.gradle.kts | ||
| compose_stability_config.conf | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| lint.xml | ||
| local.properties.example | ||
| README.md | ||
| SECURITY.md | ||
| settings.gradle.kts | ||
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
- Copy
local.properties.exampletolocal.properties - 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
- Build and install:
./gradlew assembleDebug
Backend (optional, recommended)
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.