π¦ Download
Minimum Android version: Android 6.0 (API 23)
Architecture: arm64-v8a, armeabi-v7a, x86_64
Install Instructions (Android)
- Download
animetown-v1.1.0.apk from the Assets section below
- On your device go to Settings β Install unknown apps and allow your browser/file manager
- Open the downloaded APK and tap Install
β¨ What's New in v1.1.0
π¬ Watch Screen β Full Custom Player
- Native HLS video player built with Flutter's
video_player + ExoPlayer
- Dual-stream playback β separate video and audio tracks synced within β€250ms
- Quality selector β switch between 240p / 360p / 480p / 720p / 1080p seamlessly without losing playback position
- Language selector β choose audio language (Japanese, English, Hindi, Tamil, Telugu, and more)
- Local HLS Proxy β a built-in localhost proxy transparently routes CDN-protected streams so ExoPlayer can access them on Android without CORS or auth issues
- Seek bar with tap-to-seek and drag support
- Β±10 second skip buttons
- Auto-hide controls with 3-second fade-out
- Orientation toggle (portrait β landscape)
πΊ Anime Info Page β Episode Improvements
- Updated to the new episode API response format
- Episodes now display high-quality screenshots (
img field)
- Episode description shown on each card
- FILLER badge for filler episodes
- Horizontal carousel layout with improved card design
π§ Under the Hood
- Synced Episode model with new API fields:
name, img, isFiller, description
- ApiService now correctly extracts
episodes and recommendations from the top-level API response
- Android Network Security Config added for CDN domains
Recommendations correctly extracted from top-level response object
πΌοΈ Features Overview
| Feature |
Description |
| π Home |
Spotlight carousel + categorised rows (Trending, Seasonal, Top Picks) |
| π Search |
Real-time AniList-powered anime search |
| π Anime Detail |
Banner hero, synopsis, studios, episodes, relations, characters, recommendations |
| π Watchlist |
Save anime to your local watchlist with SQLite persistence |
| π¬ Watch |
Full custom HLS player with quality + audio language switching |
| π Sources |
AniList metadata + custom streaming API |
π§± Tech Stack
| Layer |
Technology |
| Framework |
Flutter 3.7 |
| State Management |
Riverpod 2 |
| Navigation |
go_router |
| HTTP Client |
Dio |
| Video Playback |
video_player (ExoPlayer on Android) |
| HLS Proxy |
Custom dart:io HttpServer |
| Local DB |
SQLite via sqflite |
| Image Loading |
cached_network_image |
| Metadata API |
AniList GraphQL |
π Known Issues
- The Watch screen hash input is temporary for testing β episode-to-hash linking will be automatic in v1.2.0
- On some devices, switching audio language may take 1β2 seconds to resync
- Web platform is unsupported for video playback (Chrome plays but desktop layout is not optimised)
π Changelog
v1.1.0 (2026-03-18)
- Added full Watch screen with HLS player, quality & language switching
- Fixed episodes not loading from new API response format
- Added local HLS proxy for Android CDN access
- Updated Episode model with
img, isFiller, description fields
- Android Network Security Config for streaming domains
- Bumped build number to 3
v1.0.2 (Previous)
- Anime detail page with episodes, characters, relations
- Watchlist with SQLite persistence
- AniList search integration
- Spotlight carousel on home screen
π οΈ Build from Source
# Prerequisites: Flutter 3.7+, Android SDK, Java 17
git clone https://github.com/akshu/animetown.git
cd animetown
flutter pub get
# Debug build
flutter run
# Release APK
flutter build apk --release
# Output: build/app/outputs/flutter-apk/animetown-v1.1.0.apk
π License
MIT Β© 2026 AnimeTown