Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

TsVitch Switch: Difference between revisions

From GameBrew
Created page with "{{Infobox Switch Homebrews |title=TsVitch |image=TsVitchSwitch.png |description=TV finally on Switch. |author=giovannimirulla |lastupdated=2024/11/23 |type=Media Players |version=0.1.0 |license=GPL-3.0 |download=https://dlhb.gamebrew.org/switchhomebrews/TsVitchSwitch.7z |website=https://github.com/giovannimirulla/TsVitch/ |source=https://github.com/giovannimirulla/TsVitch/ |donation= }} {{#seo: |title=Switch Homebrew Apps (Media Players) - GameBrew |title_mode=append |im..."
 
No edit summary
 
(6 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=2024/11/23
|lastupdated=2026/01/10
|type=Media Players
|type=Media Players
|version=0.1.0
|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 19: Line 19:
|image_alt=TsVitch
|image_alt=TsVitch
}}
}}
TsVitch is an application designed to transform the Nintendo Switch into a versatile multimedia streaming device. It provides users with a user-friendly interface and extensive customization options to access and enjoy various streaming services directly on their console.
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 ==
== Features ==
* '''Multimedia Streaming''': Stream IPTV channels directly on your Nintendo Switch with support for M3U playlists.
* Stream IPTV channels directly on your Nintendo Switch (support for M3U playlists).
* '''Optimized UI''': User interface designed for the Nintendo Switch touchscreen and Joy-Con controls.
* User interface designed for the Nintendo Switch touchscreen and Joy-Con controls.
* '''Default Playlist''': Includes a preloaded playlist sourced from the [https://github.com/Free-TV/IPTV Free-TV/IPTV repository].
* Save your favorite channels.
* '''Cross-Platform Development''':
* View the history of watched channels.
** Supports Nintendo Switch as the primary target platform.
* Search bar and filters.
** macOS support for desktop testing and builds.
* Includes a preloaded playlist sourced from the [https://github.com/Free-TV/IPTV Free-TV/IPTV repository].
* '''Docker Support''': Streamlined cross-compilation environment using Docker for building the Switch executable (<code>tsvitch.nro</code>).
* Cross-platform (Nintendo Switch and macOS).
* '''Custom Dependencies''': Incorporates advanced features through tailored libraries like ffmpeg, libmpv, and wiliwili.


== Technical Additions ==
== Installation ==
* '''Build Methods''':
Download tsvitch-NintendoSwitch.zip from [https://github.com/giovannimirulla/TsVitch/releases Releases].
** Native build environment with DevkitPro for Switch compatibility.
** Desktop builds supported via CMake and Homebrew on macOS.
* '''Utilities''':
** Option to install a desktop shortcut for streamlined app launching on the Switch.
** OpenGL build support.
* '''Acknowledgements''':
** Integrated contributions from open-source projects like Borealis (UI), FFmpeg (video processing), and multiple libraries for JSON handling, QR code generation, and SVG rendering.


== Default Playlist ==
Place tsvitch.nro in the SD card under the switch directory.
The app comes preloaded with a default playlist sourced from the [https://github.com/Free-TV/IPTV Free-TV/IPTV repository]. This repository provides a wide range of free and publicly available IPTV channels.


== How To Install on Nintendo Switch ==
On the home screen, hold the R button while opening any game to access hbmenu. From the list, select tsvitch and click to launch.
# Download tsvitch-NintendoSwitch.zip from: [https://github.com/giovannimirulla/TsVitch/releases tsvitch releases]
 
# Place tsvitch.nro in the SD card under the switch directory.
(Optional) Install a desktop shortcut within the app via: Settings/Utilities/User Guide.
# 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==
==Media==
Line 54: 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>&lt;thread&gt;</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 &amp; 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 &amp; 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 &amp; 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'''
* 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 &quot;Next&quot; and &quot;Previous&quot; 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'''
'''v0.1.0'''
* First Release.
* First Release.


== External links ==
== External links ==
* Github - https://github.com/giovannimirulla/TsVitch/
* GitHub - https://github.com/giovannimirulla/TsVitch/
* VitaDB - https://hb-app.store/switch/TsVitch
* Homebrew App Store - https://hb-app.store/switch/TsVitch
"

Latest revision as of 02:29, 11 January 2026

TsVitch
General
Authorgiovannimirulla
TypeMedia Players
Version0.3.2
LicenseGPL-3.0
Last Updated2026/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 exitEventSubscription 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:
      • live_download_error / live_download_error_desc
      • contributors_header / sponsors_header
      • contrib_text / sponsor_qr
  • 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

Advertising: