TsVitch Switch: Difference between revisions
From GameBrew
More actions
No edit summary |
No edit summary |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 4: | Line 4: | ||
|description=TV finally on Switch. | |description=TV finally on Switch. | ||
|author=giovannimirulla | |author=giovannimirulla | ||
|lastupdated= | |lastupdated=2026/01/10 | ||
|type=Media Players | |type=Media Players | ||
|version=0.2 | |version=0.3.2 | ||
|license=GPL-3.0 | |license=GPL-3.0 | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/TsVitchSwitch.7z | |download=https://dlhb.gamebrew.org/switchhomebrews/TsVitchSwitch.7z | ||
| Line 24: | Line 24: | ||
* Stream IPTV channels directly on your Nintendo Switch (support for M3U playlists). | * Stream IPTV channels directly on your Nintendo Switch (support for M3U playlists). | ||
* User interface designed for the Nintendo Switch touchscreen and Joy-Con controls. | * User interface designed for the Nintendo Switch touchscreen and Joy-Con controls. | ||
* Save your favorite channels. | |||
* View the history of watched channels. | |||
* Search bar and filters. | |||
* Includes a preloaded playlist sourced from the [https://github.com/Free-TV/IPTV Free-TV/IPTV repository]. | * Includes a preloaded playlist sourced from the [https://github.com/Free-TV/IPTV Free-TV/IPTV repository]. | ||
* Cross-platform (Nintendo Switch and macOS). | * Cross-platform (Nintendo Switch and macOS). | ||
| Line 40: | Line 43: | ||
<youtube>yPR4c4CnRUI</youtube> | <youtube>yPR4c4CnRUI</youtube> | ||
==Changelog== | ==Changelog== | ||
'''v0.3.2''' | |||
* Recompiled with the latest libnx to ensure compatibility with the current devkitPro toolchain and Switch SDK. | |||
* No functional changes; this hotfix focuses on build stability and forward compatibility. | |||
'''v0.3.1''' | |||
* macOS Compatibility | |||
** '''Fixed macOS build compatibility''' with proper i18n string handling in live stream error dialog | |||
** '''Fixed unsafe type casting''' in platform detection - replaced unchecked cast with safe null checks in settings, contributors, and sponsors views | |||
** '''Fixed missing header include''' - added <code><thread></code> header in ChannelManager.cpp for proper compilation | |||
** '''Fixed DownloadManager constructor initialization order''' on macOS for member variable initialization compliance | |||
* Crash Fixes | |||
** '''Fixed segmentation fault in HomeLive destructor''' - initialized <code>exitEventSubscription</code> member variable to prevent undefined behavior on app exit | |||
** '''Fixed memory safety issue''' in event subscription cleanup | |||
* Initialization & Type Safety | |||
** '''Fixed platform pointer null checks''' to prevent crashes when platform is unavailable | |||
** '''Fixed string localization''' in live download error dialogs to use proper brls::getStr() instead of macro expansion | |||
*Affected Components | |||
** ChannelManager | |||
** DownloadManager | |||
** SettingsActivity | |||
** ContributorsView | |||
** SponsorsView | |||
** StreamHelper utilities | |||
** HomeLive fragment | |||
*Technical Details | |||
** Improved type safety by removing unsafe casts | |||
** Enhanced macOS compatibility layer | |||
** Fixed member initialization order in structs | |||
** Proper initialization of event subscription members to prevent crashes on destruction | |||
'''v0.3.0''' | |||
*Full Download System | |||
** '''Download Manager''' with multi-threaded + chunked downloads (optimized for Nintendo Switch) | |||
** '''Downloads Tab''' to monitor active and completed downloads | |||
** '''Advanced Controls''': pause, resume, cancel | |||
** '''Auto Cover Fetch''' for each downloaded video | |||
** '''Live Progress''' with speed and ETA | |||
** '''Persistent State''': resume incomplete downloads after restart | |||
** '''Parallel Downloads''' to maximize throughput | |||
*Xtream Codes IPTV | |||
** '''Full Xtream API''' integration for IPTV providers | |||
** '''IPTV Mode Switcher''' between M3U8 and Xtream | |||
** '''Category-Based''' channel organization | |||
** '''Secure Auth''' for Xtream servers | |||
** '''4.5x Faster Loading''' via optimized caching | |||
*Playback Position Restore | |||
** '''Smart Auto-Resume''': videos continue where you left off | |||
** '''Mode-Aware''': differentiates live streams vs VOD | |||
** '''Persistent Cache''' with 30-day expiry | |||
** '''Smart Tracking''': ignores positions too close to start or end | |||
*Live Download Prevention | |||
** '''Auto Detection''' of live content by URL/title heuristics | |||
** '''Live Download Block''' with clear, localized errors | |||
** '''Centralized Helper''' for consistent behavior app-wide | |||
*Contributors & Sponsors | |||
** '''Contributors View''' with avatars and stats from GitHub | |||
** '''Sponsors View''' to highlight supporters | |||
** '''QR Codes''' for quick access to repo and sponsor page | |||
** '''GitHub API''' (REST + GraphQL) with 24h cache | |||
*Ad Handling Improvements | |||
** '''Automatic Fallback''': if an ad fails, skip to content | |||
** '''No Interruptions''' even when ad servers are down | |||
*UI/UX Improvements | |||
** '''Video Progress Slider''' more responsive with better gestures | |||
** '''Improved OSD''' for clearer on-screen controls | |||
** '''Settings Reorg''' with a refreshed About section | |||
** '''Fullscreen''' control handling polished | |||
* Performance | |||
** '''350% faster''' channel loading | |||
** '''Memory Optimized''' RecyclingGrid | |||
** '''Better Threading''' for background tasks | |||
** '''Crash Fixes''' on app shutdown | |||
* Networking & API | |||
** '''HTTP Chunked Transfer''' for large downloads | |||
** '''Smarter Timeouts''' for slow networks | |||
** '''Batch Requests''' to cut latency | |||
** '''Robust Error Handling''' on network calls | |||
* Channel System | |||
** '''Full Refactor''' with multi-source support | |||
** '''Event System''' for IPTV change notifications | |||
** '''Download Detection''' of already-downloaded items | |||
** '''Optimized Cache''' for metadata and playlists | |||
* Localization | |||
**New strings in '''Italian''', '''English''', and '''Brazilian Portuguese''': | |||
*** <code>live_download_error</code> / <code>live_download_error_desc</code> | |||
*** <code>contributors_header</code> / <code>sponsors_header</code> | |||
*** <code>contrib_text</code> / <code>sponsor_qr</code> | |||
* Bug Fixes | |||
*'''Stability''' | |||
** Fixed crashes on activity shutdown | |||
** Fixed cache memory leak | |||
** Fixed download race conditions | |||
** Fixed thread sync issues | |||
*'''Functionality''' | |||
** Fixed IPTV channel cache | |||
** Fixed Switch download banner | |||
** Fixed duplicate download IDs | |||
** Fixed live vs on-demand detection | |||
** Fixed runtime IPTV mode switching | |||
*'''UI/UX''' | |||
** Fixed RecyclingGrid layout | |||
** Fixed controller focus navigation | |||
** Fixed transition glitches | |||
** Fixed progress bars across themes | |||
'''v0.2.1''' | '''v0.2.1''' | ||
* Bug Fixes | * Bug Fixes | ||
| Line 64: | Line 169: | ||
== External links == | == External links == | ||
* GitHub - https://github.com/giovannimirulla/TsVitch/ | * GitHub - https://github.com/giovannimirulla/TsVitch/ | ||
* | * Homebrew App Store - https://hb-app.store/switch/TsVitch | ||
Latest revision as of 02:29, 11 January 2026
| TsVitch | |
|---|---|
| General | |
| Author | giovannimirulla |
| Type | Media Players |
| Version | 0.3.2 |
| License | GPL-3.0 |
| Last Updated | 2026/01/10 |
| Links | |
| Download | |
| Website | |
| Source | |
TsVitch is a homebrew app that transforms the Nintendo Switch into a multimedia streaming device, featuring a user-friendly interface and extensive customization options.
Features
- Stream IPTV channels directly on your Nintendo Switch (support for M3U playlists).
- User interface designed for the Nintendo Switch touchscreen and Joy-Con controls.
- Save your favorite channels.
- View the history of watched channels.
- Search bar and filters.
- Includes a preloaded playlist sourced from the Free-TV/IPTV repository.
- Cross-platform (Nintendo Switch and macOS).
Installation
Download tsvitch-NintendoSwitch.zip from Releases.
Place tsvitch.nro in the SD card under the switch directory.
On the home screen, hold the R button while opening any game to access hbmenu. From the list, select tsvitch and click to launch.
(Optional) Install a desktop shortcut within the app via: Settings/Utilities/User Guide.
Media
Tsvitch - TV su Switch ! (Modding Labs)
Changelog
v0.3.2
- Recompiled with the latest libnx to ensure compatibility with the current devkitPro toolchain and Switch SDK.
- No functional changes; this hotfix focuses on build stability and forward compatibility.
v0.3.1
- macOS Compatibility
- Fixed macOS build compatibility with proper i18n string handling in live stream error dialog
- Fixed unsafe type casting in platform detection - replaced unchecked cast with safe null checks in settings, contributors, and sponsors views
- Fixed missing header include - added
<thread>header in ChannelManager.cpp for proper compilation - Fixed DownloadManager constructor initialization order on macOS for member variable initialization compliance
- Crash Fixes
- Fixed segmentation fault in HomeLive destructor - initialized
exitEventSubscriptionmember variable to prevent undefined behavior on app exit - Fixed memory safety issue in event subscription cleanup
- Fixed segmentation fault in HomeLive destructor - initialized
- Initialization & Type Safety
- Fixed platform pointer null checks to prevent crashes when platform is unavailable
- Fixed string localization in live download error dialogs to use proper brls::getStr() instead of macro expansion
- Affected Components
- ChannelManager
- DownloadManager
- SettingsActivity
- ContributorsView
- SponsorsView
- StreamHelper utilities
- HomeLive fragment
- Technical Details
- Improved type safety by removing unsafe casts
- Enhanced macOS compatibility layer
- Fixed member initialization order in structs
- Proper initialization of event subscription members to prevent crashes on destruction
v0.3.0
- Full Download System
- Download Manager with multi-threaded + chunked downloads (optimized for Nintendo Switch)
- Downloads Tab to monitor active and completed downloads
- Advanced Controls: pause, resume, cancel
- Auto Cover Fetch for each downloaded video
- Live Progress with speed and ETA
- Persistent State: resume incomplete downloads after restart
- Parallel Downloads to maximize throughput
- Xtream Codes IPTV
- Full Xtream API integration for IPTV providers
- IPTV Mode Switcher between M3U8 and Xtream
- Category-Based channel organization
- Secure Auth for Xtream servers
- 4.5x Faster Loading via optimized caching
- Playback Position Restore
- Smart Auto-Resume: videos continue where you left off
- Mode-Aware: differentiates live streams vs VOD
- Persistent Cache with 30-day expiry
- Smart Tracking: ignores positions too close to start or end
- Live Download Prevention
- Auto Detection of live content by URL/title heuristics
- Live Download Block with clear, localized errors
- Centralized Helper for consistent behavior app-wide
- Contributors & Sponsors
- Contributors View with avatars and stats from GitHub
- Sponsors View to highlight supporters
- QR Codes for quick access to repo and sponsor page
- GitHub API (REST + GraphQL) with 24h cache
- Ad Handling Improvements
- Automatic Fallback: if an ad fails, skip to content
- No Interruptions even when ad servers are down
- UI/UX Improvements
- Video Progress Slider more responsive with better gestures
- Improved OSD for clearer on-screen controls
- Settings Reorg with a refreshed About section
- Fullscreen control handling polished
- Performance
- 350% faster channel loading
- Memory Optimized RecyclingGrid
- Better Threading for background tasks
- Crash Fixes on app shutdown
- Networking & API
- HTTP Chunked Transfer for large downloads
- Smarter Timeouts for slow networks
- Batch Requests to cut latency
- Robust Error Handling on network calls
- Channel System
- Full Refactor with multi-source support
- Event System for IPTV change notifications
- Download Detection of already-downloaded items
- Optimized Cache for metadata and playlists
- Localization
- New strings in Italian, English, and Brazilian Portuguese:
live_download_error/live_download_error_desccontributors_header/sponsors_headercontrib_text/sponsor_qr
- New strings in Italian, English, and Brazilian Portuguese:
- Bug Fixes
- Stability
- Fixed crashes on activity shutdown
- Fixed cache memory leak
- Fixed download race conditions
- Fixed thread sync issues
- Functionality
- Fixed IPTV channel cache
- Fixed Switch download banner
- Fixed duplicate download IDs
- Fixed live vs on-demand detection
- Fixed runtime IPTV mode switching
- UI/UX
- Fixed RecyclingGrid layout
- Fixed controller focus navigation
- Fixed transition glitches
- Fixed progress bars across themes
v0.2.1
- Bug Fixes
- Channel loading is now faster.
- Various fixes and stability improvements.
v0.2.0
- New Features
- Favorites: You can now save your favorite channels.
- History: View the history of watched channels.
- Search bar: Quickly search among channels.
- Filters: Channel list filtering and added country list.
- Improved image display: Fixed how channel and interface images are shown.
- Enhanced navigation: Added "Next" and "Previous" buttons for easier channel browsing.
- Translations: New languages and updates to existing translations.
- Improvements
- Sidebar improved with new buttons.
- Optimized images and logo display.
- Bug Fixes
- Various fixes and stability improvements.
v0.1.0
- First Release.
External links
- GitHub - https://github.com/giovannimirulla/TsVitch/
- Homebrew App Store - https://hb-app.store/switch/TsVitch