[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84178":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},84178,"StreamVault-IPTV","Davidona\u002FStreamVault-IPTV","Davidona","StreamVault is a TV-first free IPTV player for Android TV built with Kotlin, Jetpack Compose, Room, Hilt, and Media3.",null,"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV","Kotlin",365,54,5,30,0,4,6,14,5.22,false,"main",[24],"iptv-player","2026-06-12 02:04:38","# StreamVault\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Freleases\u002Flatest\u002Fdownload\u002FStreamVault.apk\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDownload-StreamVault.apk-2ea44f?style=for-the-badge&logo=android\" alt=\"Download StreamVault APK\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FDavidona\u002FStreamVault-IPTV?display_name=tag&style=for-the-badge&color=0f766e\" alt=\"Latest StreamVault release\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FDavidona\u002FStreamVault-IPTV\u002Ftotal?style=for-the-badge&color=8b5cf6\" alt=\"Total Downloads\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FeGPBMygcb\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Server-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"Join the StreamVault Discord\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"docs\u002FCHANGELOG.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChangelog-View-2563eb?style=for-the-badge\" alt=\"View changelog\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Factions\u002Fworkflows\u002Frelease.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FDavidona\u002FStreamVault-IPTV\u002Frelease.yml?branch=master&style=for-the-badge&label=CI\" alt=\"GitHub Actions status\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fko-fi.com\u002Fdavidona\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSupport-Ko--fi-ff5f5f?style=for-the-badge&logo=kofi\" alt=\"Support on Ko-fi\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-StreamVault_OSL-0284c7?style=for-the-badge\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nStreamVault is a TV-first IPTV player for Android TV built with Kotlin, Jetpack Compose, Room, Hilt, and Media3.\n\nIt is designed for large playlists, remote-friendly browsing, fast provider switching, and a polished living-room playback experience. StreamVault supports `M3U` playlists, `Xtream Codes`, and `Stalker Portal` providers, with dedicated flows for `Live TV`, `Movies`, and `Series`.\n\nBuilt for Android TV first, StreamVault focuses on the things generic IPTV apps usually get wrong: D-pad navigation, quick channel movement, large-library organization, and a player that still feels good to use from the couch. Phone and tablet installs are also supported, but the primary UX target is TV.\n\n## Preview\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FLiveTV.png\">\u003Cimg src=\"docs\u002Fimages\u002FLiveTV.png\" alt=\"Live TV\" width=\"88%\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FMovies.png\">\u003Cimg src=\"docs\u002Fimages\u002FMovies.png\" alt=\"Movies\" width=\"44%\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FMovieInfo.png\">\u003Cimg src=\"docs\u002Fimages\u002FMovieInfo.png\" alt=\"Movie Details\" width=\"44%\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FHome.png\">\u003Cimg src=\"docs\u002Fimages\u002FHome.png\" alt=\"Home\" width=\"19%\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FLiveTV.png\">\u003Cimg src=\"docs\u002Fimages\u002FLiveTV.png\" alt=\"Live TV\" width=\"19%\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FChannelView.png\">\u003Cimg src=\"docs\u002Fimages\u002FChannelView.png\" alt=\"Channel Preview\" width=\"19%\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FGuide.png\">\u003Cimg src=\"docs\u002Fimages\u002FGuide.png\" alt=\"Guide\" width=\"19%\" \u002F>\u003C\u002Fa>\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FSettings.png\">\u003Cimg src=\"docs\u002Fimages\u002FSettings.png\" alt=\"Settings\" width=\"19%\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Fraw\u002Fmaster\u002Fdocs\u002Fimages\u002FSeriesEpisodes.png\">\u003Cimg src=\"docs\u002Fimages\u002FSeriesEpisodes.png\" alt=\"Series Episodes\" width=\"32%\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n## Highlights\n\n- Android TV-first interface with D-pad-friendly focus, navigation, and playback flows\n- Playlist support for `Xtream Codes`, `Stalker Portal`, and `M3U` sources, including local playlist files\n- Combined M3U live-source support with optional in-browser source switching for merged Live TV setups\n- Fast live-TV browsing with preview mode, favorites, recent channels, custom groups, and pinned categories\n- Movie and series libraries with detailed info pages, resume support, episode switching, and auto-play for next episodes\n- Full EPG support with guide search, XMLTV support, and provider archive or catch-up when available\n- Built-in DVR with scheduled recording, background capture, recording playback, and app-managed default storage\n- Multi-view split-screen playback for watching multiple channels at once\n- Plugin API for creating companion Android APKs that extend providers, playback, Cast URL handling, or configuration flows\n- Strong parental controls with PIN-protected categories and automatic adult-category detection\n- TV integrations including Watch Next, launcher recommendations, TV input sync, Cast support, and in-app update delivery\n\n## Features\n\n### Playlist Support\n\n- `Xtream Codes`\n- `Stalker Portal`\n- `M3U` playlists from URLs plus local files\n- Separate onboarding and sync flows for live channels, movies, series, and guide data\n- Fast switching between providers with provider-scoped settings\n- Combined M3U profiles for merging multiple M3U providers into a single Live TV source\n\n### Navigation And TV UX\n\n- Designed for Android TV and D-pad navigation first\n- Fast channel browsing with large-playlist friendly layouts\n- Numeric remote input for direct channel entry\n- Preview mode while browsing channels\n- TV-friendly search and text-entry flows\n\n### Live TV And Channel Management\n\n- Favorites and recently watched channels\n- Custom groups for personal channel collections\n- Pinned categories surfaced near the top of the live guide rail\n- Optional Live TV provider or source browser for M3U-based setups\n- Long-press live categories for actions like pin, hide, lock or unlock, and custom-group management\n- Channel reordering for favorites and custom groups\n- Channel numbering modes by group or across the full provider lineup\n- Predefined filter words to make category search cleaner on noisy provider data\n\n### Guide, Search, And Playback\n\n- Full EPG grid view\n- Program search inside the guide\n- XMLTV guide support with built-in EPG source management\n- Manual EPG match overrides and source-priority controls from inside Settings and Guide flows\n- Provider archive or catch-up support when the source exposes replay streams\n- Live rewind or timeshift playback with up to 30 minutes of buffer, even when provider catch-up is unavailable\n- Global search across live TV, movies, and series\n- Multi-view for watching multiple live streams at once\n- Player controls for subtitles, audio tracks, aspect ratio, playback speed, video quality, and Cast\n\n### Recording And Playback\n\n- Scheduled and background DVR recording for live channels\n- Program reminders from guide entries when you want a notification without scheduling a recording\n- Conflict detection, persistence, and repair support for recording jobs\n- App-managed default recording folder with optional custom storage selection\n- In-app playback for completed recordings with a visible on-player recording indicator during active capture\n- Playback troubleshooting controls for decoder mode, media session behavior, and timeout tuning\n- Bundled Media3 FFmpeg audio fallback for unsupported audio codecs such as AC-3, E-AC-3, DTS, MP2, and TrueHD, with diagnostics and expert compatibility controls\n\n### Movies And Series\n\n- Two VOD layouts:\n\t- Modern shelf-based browsing\n\t- Classic left-sidebar category browsing\n- Detailed info pages for movies and series\n- Continue watching, playback history, and detail-screen resume actions with saved position context\n- Long-press VOD categories and custom groups for actions like hide, rename, delete, or reorder when applicable\n- In-player episode switching for series\n- Automatic next-episode playback when another episode is available\n\n### Parental Controls\n\n- Hide categories completely\n- Lock categories behind a PIN\n- Option to hide locked content from browsing views\n- Adult-category detection using provider flags and category naming heuristics\n\n### Languages And Device Support\n\n- English plus 25 translated locale packs currently ship with the app\n- Locale coverage is broader and rendering is more reliable across supported languages\n- Built for TV first; phones and tablets are supported, but not the primary design target\n\n### Platform Integrations\n\n- Android TV Watch Next integration\n- Launcher recommendations and TV entry points\n- Android TV Input Framework channel sync\n- Google Cast sender support\n\n### Plugins\n\n- StreamVault can be extended with companion Android APK plugins.\n- Plugin developers can expose provider, playback, Cast URL rewrite, and host-rendered or native configuration capabilities.\n- See the [StreamVault Plugin API](docs\u002FPLUGIN_API.md) docs to create compatible plugins.\n\n## Quick TV Tips\n\n- Long-press a channel, movie, or series to add it to Favorites or a custom group.\n- Long-press a live category to open category actions such as pin, hide, lock or unlock, and custom-group actions like reorder.\n- In Movies and Series, long-press categories or custom groups for hide or group-management actions where available.\n- Long-press a live channel to queue it for Split Screen.\n- Use the number keys on a remote while in the player to jump directly to a channel.\n- While watching a series, open Episodes in the player to switch episodes without backing out to the details page.\n\n## Download\n\n- [Download latest StreamVault.apk](https:\u002F\u002Fgithub.com\u002FDavidona\u002FStreamVault-IPTV\u002Freleases\u002Flatest\u002Fdownload\u002FStreamVault.apk)\n- The app can also detect and download newer releases in-app through GitHub Releases.\n- GitHub Actions still runs build and test validation on pushes and pull requests.\n- GitHub Releases are now published only when the workflow is started manually with `workflow_dispatch`, so versioned releases do not get created by mistake on every push.\n\n## Support\n\nIf StreamVault is useful to you, you can support development here:\n\n- [Support on Ko-fi](https:\u002F\u002Fko-fi.com\u002Fdavidona)\n\n## Project Structure\n\n- `app\u002F` Android app UI, navigation, dependency injection, and Android TV integrations\n- `data\u002F` Room database, sync, parsing, provider implementations, and repositories\n- `domain\u002F` models, repository contracts, managers, and use cases\n- `player\u002F` playback abstraction and Media3 player implementation\n- `docs\u002F` architecture notes, plugin API docs, and image assets\n\n## Build\n\nRequirements:\n\n- Android Studio\n- Android SDK\n- JDK 17 or another Gradle-supported JDK 17 runtime\n- Android NDK only if you want to rebuild the bundled Media3 FFmpeg extension locally\n\nUseful commands:\n\n```bash\n.\u002Fgradlew assembleDebug\n.\u002Fgradlew assembleRelease\n.\u002Fgradlew testDebugUnitTest\n```\n\n## Notes\n\n- StreamVault is an IPTV client, not a content provider.\n- Use only playlists, streams, and guide sources you are authorized to access.\n- Local configuration and signing files are intentionally excluded from git.\n\n## License\n\nThis project was originally released without an explicit license.  \nAs of April 2026, all usage, modification, and distribution are governed by the StreamVault Source-Available License (Non-Commercial).\n\nAny use of this project must comply with the terms defined in the LICENSE file.\n",2,"2026-06-11 04:12:29","trending"]