• 1.0.64 3a16712f0d

    nanohits released this 2026-02-09 07:19:59 +08:00 | 0 commits to main since this release

    Changelog

    [1.0.64] - 2026-01-24

    Fixed

    • MPV timestamp tracking accuracy - Updated script to v2 with proxy URL detection
      • Added detection for RoxyIPTV's local proxy server (127.0.0.1/localhost)
      • Added URL decoding function to handle encoded characters
      • Improved stream ID extraction with multiple fallback strategies
      • Fixes "random skip" issue by correctly identifying proxied streams
    • Theater mode debug overlay - Removed red debug overlay that appeared in fullscreen
      • Removed "THEATER MODE ACTIVE" debug message with container/video dimensions
      • Clean fullscreen experience without debug UI elements
    Downloads
  • 1.0.63 3a16712f0d

    nanohits released this 2026-02-07 09:06:49 +08:00 | 0 commits to main since this release

    Changelog

    [1.0.63] - 2026-01-24

    Added

    MPV Continue Watching - Exact Timestamp Tracking

    • Integrated MPV timestamp tracker for precise resume positions

      • Tracks exact playback position every 10 seconds
      • Logs position on pause and quit events
    • Auto-resume functionality - MPV automatically resumes from last position

    • Exact resume positions - No more estimated timestamps, uses actual MPV data

    • Fallback support - Time-based estimation if MPV tracker unavailable

    • Resume threshold - Only resumes if more than 5 seconds into content

    EPG Auto-Refresh

    • Smart EPG auto-refresh based on user-defined interval (12h, 24h, 48h, 7 days)
    • User-aware refresh - Defers if user is actively watching content
    • Requires initial manual download - Won't auto-download EPG for new playlists
    • Performance-conscious - Checks every 5 minutes, only refreshes when needed
    • User notifications - Toast notifications warn about potential slowdowns

    Timestamp Visibility

    • Playlist timestamp displayed on playlist card (when content was last refreshed)
    • EPG timestamp in Settings showing TV guide last update
    • Set on creation - New playlists get lastRefreshed timestamp immediately

    Series Sorting

    • 'Recently Added' sort option on TV Series page
    • Matches Movies page functionality
    • Sorts series by added date (most recent first)
    • Persists sort preference in localStorage

    Fixed

    • Recently Watched playback bug - Channels not playing from History page or LiveTV Recent category
      • Unified Recent channel data structure with Favorites (includes url, streamId, logo)
      • Fixed navigation handler to properly lookup both favorites and recentlyWatched

    Changed

    • EPG auto-refresh interval reduced from once per interval to checking every 5 minutes
    • Initial check delay increased from 10s to 60s to avoid blocking app startup
    Downloads
  • 1.0.62 3a16712f0d

    nanohits released this 2026-02-05 07:31:01 +08:00 | 0 commits to main since this release

    Changelog

    All notable changes to RoxyIPT will be documented in this file.

    [1.0.62] - 2026-02-03

    New Features

    HTTP User-Agent Setting

    • Custom User-Agent Configuration: Added new User-Agent setting in Settings → Player allowing users to customize the HTTP User-Agent header sent with stream requests.
    • Default User-Agent: Ships with 'Wink/1.31.1' as the default User-Agent.
    • Internal Player Support: User-Agent is automatically applied to all HLS.js, ts and m3u8 requests

    🐛 Bug Fixes

    Stream Timeout and 458 Error Fix

    Some IPTV providers were returning 458 HTTP errors or timing out when User-Agent headers were missing from stream requests, causing random stream failures and retry loops. Users can now set their own user-agent headers in settings-player.

    Rating Scale Display Bug Fix

    Implemented auto-detection logic that examines the rating value and intelligently determines the scale.

    TypeError on Playlist Save (Critical)

    Playlist additions now work without errors, and licensing state is preserved correctly.

    LiveTV EPG Overload Prevention

    Load the first category instead of 'all_categories' when favorites are empty.

    Downloads
  • 1.0.61 3a16712f0d

    nanohits released this 2026-02-02 15:37:44 +08:00 | 0 commits to main since this release

    Changelog

    All notable changes to RoxyIPT will be documented in this file.

    [1.0.61] - 2026-01-24

    New Features

    Playlist Refresh Status Display

    • Transparency Dashboard: Added a new "Playlist Refresh Status" card in Settings → General that shows:
      • Last Refresh: Human-readable time ("2 hours ago") plus exact timestamp
      • Next Refresh: Calculated next refresh time or "Pending (on next app launch)" if overdue
      • Color-Coded Status: Green for recent refreshes, yellow for never/overdue, blue for scheduled
    • Active Playlist Only: Only displays when an active playlist is selected, showing relevant information for the current playlist.

    Favorites Drag-and-Drop Reordering

    • Interactive Reordering: Restored drag-and-drop functionality in Favorites page allowing users to reorder favorite channels, movies, and series.
    • Grip Handle: Visual grip icon appears on hover in the top-left corner of each card, indicating draggable items.
    • Smooth Animations: Drag animations with opacity change during drag operations for better visual feedback.
    • Persistent Order: Reordered favorites are immediately saved to Zustand store and persisted across app restarts.

    🐛 Bug Fixes

    Playlist Auto-Refresh System Overhaul

    • Persistent Timestamp Tracking: Fixed playlist auto-refresh that only worked if the app stayed open continuously (e.g., 24 hours). The app now stores a lastRefreshed timestamp for each playlist and checks it on app launch, automatically refreshing if the interval has passed.
    • Launch-Time Validation: Auto-refresh now triggers immediately on app launch if the playlist is overdue for refresh, instead of relying solely on setInterval timers that reset when the app closes.
    • Smart Logging: Added diagnostic logging showing when playlists were last refreshed and when the next refresh will occur.

    Dashboard Content Type Status Display

    • Accurate Disabled State: Fixed Dashboard tiles (Live TV, Movies, Series) showing "Loading..." when content types were disabled in playlist settings. Now correctly displays "Disabled" with a red indicator when includeLive, includeVOD, or includeSeries is set to false.
    • Visual Consistency: All three main tiles now follow the same pattern for showing enabled/disabled states.

    Theater Mode Aspect Ratio Fix

    • Maintain Aspect Ratio: Fixed theater mode stretching video content to fill the screen. Theater mode now uses objectFit: 'contain' to maintain proper aspect ratio with letterboxing when needed.
    • No Distortion: Videos display in their original aspect ratio without stretching or distortion in theater mode.

    🚀 Performance Improvements

    EPG Loading Optimization

    • Removed Channel Limit: Eliminated the 150-channel safety limit that was blocking EPG loads for larger categories.
    • Category-by-Category Loading: EPG data loads only for the currently selected category, not all channels at once. Switching categories loads EPG on-demand.
    • Indexed SQLite Queries: EPG cache queries use indexed lookups on playlist_id and channel_id for fast retrieval (< 100ms for 100+ channels).
    • Fuzzy Matching Safeguard: Fuzzy channel name matching only runs if fewer than 50 channels are unmatched, preventing large-scale scanning.
    Downloads
  • 1.0.60 3a16712f0d

    nanohits released this 2026-01-28 13:56:56 +08:00 | 0 commits to main since this release

    Changelog

    All notable changes to RoxyIPT will be documented in this file.

    [1.0.60] - 2026-01-27

    🐛 Critical Fixes

    Content Filter Corruption (Multi-Playlist Users)

    • Per-Playlist Filters: Fixed widespread data corruption affecting users with multiple playlists. Content filters (hidden categories, hidden channels) are now stored separately for each playlist instead of globally, preventing filters from one playlist from affecting others.
    • Automatic Migration: Existing users will experience a seamless, automatic upgrade that preserves their current filter settings across all playlists.
    • Cloud Sync Compatibility: Updated cloud sync to handle both legacy and new filter formats, ensuring smooth data synchronization across devices.

    Watch History Persistence Bug

    • Clear History Fixed: Resolved an issue where clearing watch history would temporarily work, but the history would reappear after app restart or cloud sync. The app now immediately syncs cleared history to the cloud, preventing restoration of deleted items.

    EPG Cache Clear Dialog

    • Confirmation Before Action: Fixed EPG cache clear confirmation dialog appearing after the cache was already cleared, making the OK/Cancel buttons meaningless. The confirmation now appears before the action executes.

    New Features

    Continue Watching for TV Shows

    • Resume Where You Left Off: TV shows now appear in the "Continue Watching" section on the Dashboard, just like movies. Start watching an episode, navigate away, and come back later to resume exactly where you stopped.
    • Progress Tracking: Visual progress bars show how far you've watched in each episode, making it easy to pick up where you left off.
    • Smart Display: Only episodes with significant watch progress (>30 seconds) appear in Continue Watching, keeping the section clean and relevant.

    🚀 Performance Improvements

    Live TV Initial Load Optimization

    • First Category Default: Live TV now starts with the first category in your playlist instead of "All Categories", dramatically reducing initial load time for users with large playlists (700+ channels).
    • Faster Startup: Loading a single category (~50 channels) is significantly faster than loading all channels at once. Users can still access "All Categories" from the sidebar if needed.

    Internal Player Stability

    • Resource Exhaustion Fixed: Resolved an issue where rapidly switching between channels would cause all streams to fail in the internal web player (while native players still worked). The app now properly cleans up video elements before switching channels, preventing browser resource exhaustion.
    • Cleanup Delay: Added intelligent cleanup with a small delay to ensure previous video elements are fully released before starting new streams.
    Downloads