This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Pure Live (纯粹直播) is a Flutter-based third-party live streaming application that supports multiple platforms including Bilibili, Douyu, Huya, Douyin, Kuaishou, CC, and custom M3U8 sources. The app is designed for Android, iOS, Windows, macOS, and TV platforms.
flutter pub get # Install dependencies
flutter clean # Clean build artifacts
flutter pub run build_runner build # Generate codeflutter build apk # Universal APK
flutter build apk --split-per-abi # Separate APKs for different architecturesdart run msix:create --signtool-options "/td SHA256" # Windows MSIX packageRequires Xcode for building iOS and macOS versions.
flutter pub run build_runner build --delete-conflicting-outputs # Regenerate all generated files
flutter pub run json_serializable # JSON serialization
flutter pub run protoc_builder # Protocol buffer generation
flutter pub run flutter_launcher_icons # Update app iconsflutter pub run intl_utils:generate # Generate localization filesThe project uses flutter_lints package with configuration in analysis_options.yaml.
-
lib/core/: Core business logic and platform integrationssite/: Platform-specific implementations (Bilibili, Douyu, Huya, etc.)danmaku/: Danmaku (live chat) handling for each platforminterface/: Abstract interfaces for live sites and danmakuiptv/: M3U8 playlist parsing and IPTV supportcommon/: Shared utilities and helpers
-
lib/common/: Shared application componentsservices/: Global services (Settings, Authentication, etc.)widgets/: Reusable UI componentsmodels/: Data models and structuresutils/: Utility functions and helpersl10n/: Internationalization support (Chinese/English)
-
lib/modules/: Feature modules organized by functionality- Each module typically contains:
*_page.dart,*_controller.dart,*_binding.dart - Major modules:
live_play/,areas/,settings/,account/,search/
- Each module typically contains:
The application uses GetX for state management, routing, and dependency injection:
- Controllers extend
BaseControllerfromlib/common/base/base_controller.dart - Services are initialized in
main.dartusingGet.put() - Bindings are used for lazy loading of controllers
- Android/TV: Multiple video players (ExoPlayer, IjkPlayer, MpvPlayer)
- Windows: Media Kit for video playback, Windows-specific utilities
- Mobile: Touch-optimized UI with gestures and mobile-specific features
- Cross-platform: SharedPreferences for settings, file system access
Each streaming platform has its own implementation in lib/core/site/:
LiveSiteinterface defines common methods for all platforms- Platform-specific classes handle API calls, authentication, and stream URL extraction
- Danmaku systems are separate implementations per platform
- Support for custom M3U8 playlists through IPTV functionality
- Multi-platform live streaming support
- Real-time danmaku (live chat) with filtering and merging
- User authentication via Supabase
- WebDAV backup/restore functionality
- Custom M3U8 playlist imports
- Platform-specific optimizations and player selection
- Internationalization (Chinese/English)
- Theme customization with dynamic colors
- Media playback:
media_kitfor cross-platform video - Network:
diofor HTTP requests with cookie management - Database:
supabase_flutterfor user authentication and data - UI framework: Flutter with Material Design and custom theming
- Storage:
shared_preferencesfor app settings, file system for caching
- Windows initialization includes window management and single-instance checking
- Android handles share intents for M3U8 file imports
- Platform-specific video player selection based on capabilities
- Uses Flutter Version Manager (FVM) - see
.fvmrc - MSIX configuration for Windows Store deployment
- Custom app icons and launcher configurations
- Localization files auto-generated in
lib/common/l10n/generated/
- Uses
flutter_lintsfor code quality - Excludes generated files from analysis
- Protocol buffer definitions for platform-specific messaging