IPTV Catch-Up and Timeshift: Technical Setup Guide

IPTV Catch-Up and Timeshift: Technical Setup Guide

Tutorials 2026-07-01 IPTVPlaylist Team 10 min read

Catch-up TV and timeshift are features that transform IPTV from a live-only experience into something closer to a DVR without the hardware. Catch-up lets you watch programs that have already aired, typically covering the last 24 to 72 hours of content on supported channels. Timeshift lets you pause live TV and resume from where you left off. Both features require specific server-side infrastructure, player support, and EPG integration to function correctly.

This guide covers the technical mechanics of how catch-up and timeshift work, from server-side recording and storage to client-side playback. We examine the protocols involved, the EPG requirements, player configuration for the most popular IPTV apps, and the common issues that prevent catch-up from working correctly.

How Catch-Up Works: Server-Side Architecture

Catch-up TV requires the IPTV server to continuously record live streams and store them for later retrieval. For each channel that supports catch-up, the server runs a recording process that captures the live stream in real-time and writes it to storage. The recorded content is typically stored in segments (matching the live stream's segment structure) and indexed by timestamp.

The storage requirements are significant. A single channel broadcasting at 5 Mbps generates approximately 2.16 GB of data per hour. Over 72 hours, that is approximately 156 GB per channel. A service with 500 catch-up enabled channels at 72-hour retention needs approximately 78 TB of storage, plus overhead for indexing and redundancy. This infrastructure cost is why catch-up is typically available on a subset of channels rather than the entire lineup.

When a viewer requests catch-up content, the server looks up the requested program by channel and timestamp, locates the corresponding recorded segments on disk, and serves them as a standard video stream. The playback experience is identical to live viewing from the user's perspective, but the data source is recorded storage rather than the live stream.

Timeshift: Pausing and Rewinding Live TV

Timeshift is technically a subset of catch-up functionality. When you pause a live channel, the server continues recording the live stream while your player maintains its current position in the stream. When you resume, the player requests content from the point where you paused rather than the current live position. The server serves the recorded content from that timestamp.

Some IPTV player implementations handle timeshift client-side instead. The player buffers the live stream locally, writing incoming data to the device's storage or memory. When you pause and resume, the player reads from its local buffer. This approach does not require server-side catch-up support but is limited by the device's available storage and memory. TiviMate, for instance, supports local timeshift buffering independent of server capabilities.

The server-side timeshift approach is more robust because it does not depend on client storage and supports larger timeshift windows (hours instead of minutes). The client-side approach is more widely available since it works with any server that delivers live streams. Most users encounter a combination of both: server-side catch-up for watching yesterday's programs, and client-side timeshift for pausing the current live stream.

Catch-Up Protocols and URL Structures

IPTV catch-up content is accessed through modified stream URLs that include timestamp parameters. The exact URL structure depends on the server software. The most common formats are Xtream Codes timeshift URLs, Stalker Portal archive requests, and Flussonic catchup URLs.

Xtream Codes catch-up URLs follow the pattern: http://server:port/timeshift/username/password/duration/start_timestamp/channel_id.ts. The duration parameter specifies how many minutes of content to serve. The start_timestamp is a Unix epoch timestamp indicating when the desired content begins. The player constructs this URL based on the EPG data and the user's program selection.

An alternative Xtream Codes format uses the streaming endpoint with additional parameters: http://server:port/streaming/timeshift.php?username=user&password=pass&stream=channel_id&start=2026-07-01-09-30&duration=60. This format uses a human-readable datetime instead of a Unix timestamp.

Stalker Portal catch-up works through the portal's API rather than direct URL construction. The device sends a catch-up request through the Stalker middleware, which returns a temporary stream URL for the requested content. The URL is session-bound and expires after the viewing session ends.

EPG Requirements for Catch-Up

Catch-up functionality depends heavily on EPG data. Without an EPG, the player has no way to present past programs for the user to select. The EPG provides the program schedule with start times, end times, and program titles. When a user browses the EPG and selects a past program, the player uses the start time and duration from the EPG data to construct the catch-up request.

The EPG data must include accurate timestamps that align with the server's recording schedule. If the EPG says a program started at 09:00 UTC but the server's recording started at 09:02 UTC due to clock drift, the first two minutes of the program will be missing from the catch-up stream. Reliable EPG sources and server clock synchronization are essential for seamless catch-up.

For M3U playlists, catch-up capability is indicated by additional attributes in the EXTINF line. The catchup attribute specifies the catch-up method (default, shift, append, or flussonic). The catchup-source attribute provides the URL template for catch-up requests. The catchup-days attribute indicates how many days of archived content are available. These attributes tell the player that catch-up is available for a channel and how to construct the request URL.

A typical catch-up enabled M3U entry looks like: #EXTINF:-1 tvg-id="bbc1.uk" tvg-name="BBC One" group-title="UK" catchup="default" catchup-days="3" catchup-source="http://server:port/timeshift/user/pass/{duration}/{start}/12345.ts",BBC One HD. The {duration} and {start} placeholders are replaced by the player with actual values when a catch-up request is made.

Player Configuration: TiviMate

TiviMate has robust catch-up support for both Xtream Codes and M3U connections. For Xtream Codes, catch-up works automatically when the server supports it. TiviMate detects catch-up capable channels and displays a catch-up icon in the channel list. In the EPG grid, past programs on catch-up enabled channels are selectable. Clicking a past program offers a Play option that initiates catch-up playback.

For M3U connections with catch-up attributes, TiviMate reads the catchup, catchup-source, and catchup-days attributes and enables catch-up functionality accordingly. The player supports the default, shift, append, and flussonic catch-up methods, covering all major server implementations.

TiviMate's local timeshift feature works independently of server support. In Settings > Playback, enable Timeshift. Choose between RAM buffer (faster but limited to available memory) and Storage buffer (larger capacity but slightly slower). Set the buffer duration based on your device's available resources. With RAM buffer, 512 MB provides approximately 5-10 minutes of timeshift for a 5 Mbps stream.

Player Configuration: IPTV Smarters Pro

IPTV Smarters Pro supports catch-up through Xtream Codes API connections. When connected to a server with catch-up enabled channels, the Catch Up section appears in the main menu alongside Live TV, Movies, and Series. The Catch Up section lists channels with available archived content.

Selecting a catch-up enabled channel displays the available program archive, organized by date. Select a date to see the programs that aired on that day, then select a program to begin playback. The archive typically covers the last 1-7 days depending on the server's retention policy and the specific channel.

IPTV Smarters does not support local timeshift. Pausing a live channel in IPTV Smarters pauses the stream but does not buffer it. When you resume, playback jumps to the current live position rather than continuing from where you paused. For timeshift functionality, TiviMate or a player with local buffering is required.

Player Configuration: XCIPTV

XCIPTV supports catch-up through Xtream Codes API. When the server provides catch-up data, XCIPTV displays a catch-up icon next to supported channels. Long-pressing a channel reveals the catch-up option, which opens a calendar-style interface showing available archived content by date and time.

The catch-up playback in XCIPTV supports seeking within the archived program, allowing you to fast-forward and rewind. The seek accuracy depends on the server's segment structure; some servers support frame-accurate seeking while others seek to the nearest segment boundary (typically 2-10 seconds).

Player Configuration: Kodi

Kodi's PVR IPTV Simple Client supports catch-up when the M3U playlist includes catch-up attributes. The add-on reads catchup, catchup-source, and catchup-days from each channel's EXTINF line. In Kodi's TV Guide, past programs on catch-up enabled channels can be selected for playback.

Kodi also supports timeshift through its PVR backend system. The PVR IPTV Simple Client can be configured with a timeshift buffer path where it stores the live stream buffer. This enables pausing, rewinding, and fast-forwarding live TV. The buffer path should point to a fast storage location (SSD preferred over HDD) for smooth seek performance.

Configure the timeshift buffer in the PVR IPTV Simple Client settings: navigate to Add-ons > My Add-ons > PVR Clients > PVR IPTV Simple Client > Configure > Catchup. Set the Catchup mode to match your M3U playlist's catch-up format. Set the timeshift buffer path to a writable directory with sufficient free space.

Troubleshooting Catch-Up Issues

Catch-up option not appearing for any channel: This means either the server does not support catch-up, your player does not detect it, or the M3U playlist lacks catch-up attributes. For Xtream Codes connections, verify with your provider that catch-up is enabled on your subscription. For M3U, check whether the playlist includes catchup attributes in the EXTINF lines.

Catch-up playback starts but shows wrong content: Timestamp misalignment between the EPG and the server's recording. The EPG might use a different timezone than the server. Check if your player's timezone settings are correct. Some players have a catch-up offset setting to compensate for timezone differences.

Catch-up playback fails with an error: The archived content may have expired (exceeded the retention period) or the server's recording for that specific time window may have failed. Try a different program on the same channel or a different channel to isolate whether the issue is channel-specific or server-wide.

Timeshift buffer not working: For local timeshift, ensure the buffer storage location has sufficient free space (at least 1 GB for a 30-minute buffer at typical bitrates). On Android devices, internal storage may be too limited; use external storage or USB drive if available. Verify that the player has write permission to the buffer directory.

Seeking within catch-up content is inaccurate: This is a server-side limitation. If the archived content is stored in long segments (30-60 seconds), seeking can only snap to segment boundaries. Some servers re-segment archived content for finer seek granularity, but this requires additional server processing. Contact your provider if seek accuracy is a priority.

Catch-Up Best Practices

  • Use Xtream Codes API instead of M3U for the most reliable catch-up experience. The API handles catch-up natively without requiring manual attribute configuration.
  • Keep your EPG data current. Stale EPG data with incorrect timestamps causes catch-up requests to target the wrong content. Set your player to update EPG every 12-24 hours.
  • Verify catch-up availability on specific channels before relying on it. Not all channels in a lineup support catch-up; it depends on licensing, server capacity, and provider configuration.
  • For local timeshift, use RAM buffer for quick pauses (under 10 minutes) and storage buffer for longer timeshift windows. RAM buffer provides faster seek performance.
  • Check your timezone settings in both the player and device OS. Timezone mismatches are the most common cause of catch-up content not matching the expected program.

IPTVPlaylist Catch-Up and Timeshift Support

IPTVPlaylist includes catch-up support on selected channels across the 29,500+ channel lineup. Catch-up availability varies by channel and typically covers the previous 24-72 hours of content. The catch-up data is delivered automatically through Xtream Codes API connections and through catch-up attributes in M3U playlists. EPG data for all channels is included with every subscription at no additional cost, providing the program schedule data that catch-up requires.

For the best catch-up experience, use TiviMate with an Xtream Codes connection from IPTVPlaylist. This combination provides automatic catch-up detection, EPG-integrated archive browsing, and local timeshift for channels that do not support server-side catch-up.

Visit /pricing to choose your subscription plan. Browse the full channel lineup at /channel-list. For setup guides covering catch-up configuration on all supported players, see /setup-guide. Explore all included features including catch-up support at /features.

Ready to Start Streaming?

Get instant access to 20,000+ live channels, 4K streaming, and 80,000+ movies and series.

View Plans & Pricing