# Temporary .ts File Fix ## Overview This document describes a temporary fix implemented to handle problematic .ts file resegmentation by redirecting .ts files to external local video players instead of attempting HLS streaming. ## Problem The .ts resegmentation implementation for HLS streaming was causing playback issues. Instead of complex troubleshooting, a simple temporary solution was needed to make .ts files playable immediately. ## Solution Modified `src/lib/video-format-detector.ts` to treat .ts files like other non-mp4 files that require external local video players. ## Changes Made ### 1. Updated TS_STREAM_FORMATS Array ```typescript // BEFORE const TS_STREAM_FORMATS = [ 'ts', // MPEG Transport Stream - optimal for HLS streaming 'm2ts', // Blu-ray Transport Stream 'mts' // AVCHD Transport Stream ]; // AFTER (temporary) const TS_STREAM_FORMATS = [ // 'ts', // TEMPORARILY DISABLED - send to local player instead 'm2ts', // Blu-ray Transport Stream 'mts' // AVCHD Transport Stream ]; ``` ### 2. Added Explicit .ts File Handling ```typescript // TEMPORARY FIX: Send .ts files to local player due to resegmentation issues if (extension === 'ts') { console.log('[FormatDetector] .ts file detected, sending to local player (temporary fix)'); return createLocalPlayerFormat(video, extension); } ``` ### 3. Enhanced User Messaging Added specific warning message for .ts files: ```typescript const warningMessage = isTsFile ? 'MPEG Transport Stream (.ts) files require a local video player for optimal playback. This is a temporary solution while we fix the streaming implementation.' : 'This format requires a local video player'; ``` ## User Experience - When users click on a .ts file, they will see the Local Player Launcher - Clear messaging explains this is a temporary solution - Users can copy the stream URL to VLC, IINA, PotPlayer, or other local players - Files play perfectly through the external streaming API (`/api/external-stream/[id]`) ## Technical Benefits - ✅ Immediate fix - .ts files are now playable - ✅ Uses existing, well-tested external streaming API - ✅ Proper HTTP range support for seeking - ✅ No transcoding required - ✅ Minimal code changes - ✅ Easy to revert when HLS implementation is fixed ## Reverting This Fix When the .ts resegmentation implementation is fixed: 1. Remove the explicit .ts handling in `detectVideoFormat()` 2. Add 'ts' back to the `TS_STREAM_FORMATS` array 3. Remove the temporary comments and warning messages 4. Test HLS streaming with .ts files ## Files Modified - `/src/lib/video-format-detector.ts` - Main format detection logic ## API Endpoint Used - `/api/external-stream/[id]` - Optimized for external players with range request support This temporary fix provides immediate .ts file playability while maintaining the overall architecture for a permanent HLS-based solution later.