Skip to main content
Raffi provides a powerful video player with support for multiple formats, adaptive streaming, and extensive customization options.

Supported Formats

Raffi can play content from multiple sources:
  • Torrent/Magnet Links - Stream directly from torrents with automatic file selection
  • Direct HTTP/HTTPS Streams - Play from direct video URLs
  • Local Files - Browse and play videos from your computer
  • HLS (HTTP Live Streaming) - Adaptive bitrate streaming with automatic quality adjustment

Video Player Features

HLS Streaming

Raffi uses HLS.js for adaptive streaming, providing smooth playback with automatic quality adjustments based on your network conditions.
The player automatically detects HLS manifests (.m3u8 files) and uses optimized buffering strategies for seamless playback.
Buffer Configuration:
  • Maximum buffer length: 50 seconds
  • Back buffer: 30 seconds maintained for rewinding
  • Adaptive buffering based on network conditions

Quality Selection

The player automatically selects the best quality based on your connection, but you can manually control quality through the stream selection interface:
1

Open Stream Selection

Click the streams button in the player controls to view available quality options.
2

Choose Your Quality

Select from available quality options provided by your addons. Common options include 1080p, 720p, 480p, and more.
3

Playback Resumes

The player will reload the stream at your selected quality and resume from your current position.

Audio Track Management

Switch between multiple audio tracks for content with different language options or audio formats:
Raffi supports advanced audio codecs including EAC-3 (Dolby Digital Plus) for high-quality surround sound.
To change audio tracks:
1

Open Audio Selection

Click the audio icon in the player controls.
2

View Available Tracks

Browse all embedded audio streams, showing language and format information.
3

Select Track

Choose your preferred audio track. The player will reload the stream with the new audio.

Subtitle Support

Raffi provides comprehensive subtitle support with both embedded and external subtitle sources: Subtitle Sources:
  • Addon Subtitles - Automatically fetched from configured Stremio addons
  • Embedded Subtitles - Extracted from video files
  • Local Subtitle Files - Load .srt or .vtt files from your computer
Supported Formats:
  • WebVTT (.vtt)
  • SubRip (.srt)

Managing Subtitles

1

Open Subtitle Selection

Click the subtitles icon (CC) in the player controls.
2

Choose a Track

Select from available subtitle tracks, grouped by source (Addon, Embedded, Local).
3

Adjust Timing (Optional)

Use the subtitle delay controls to sync subtitles with audio if needed.
4

Load Local Subtitles (Optional)

Click “Add Local Subtitle” to browse and load a subtitle file from your computer.

Subtitle Delay Adjustment

If subtitles are out of sync with the audio:
  1. Open the subtitle selection modal
  2. Use the delay controls to adjust timing in seconds
  3. Positive values delay subtitles, negative values show them earlier
  4. Changes apply instantly to the current playback
Subtitle position automatically adjusts when player controls are visible to avoid overlap.

Playback Controls

Keyboard Shortcuts

Control playback efficiently with keyboard shortcuts:
KeyAction
SpacePlay/Pause
Arrow LeftSeek backward 5 seconds
Arrow RightSeek forward 5 seconds
Arrow UpIncrease volume
Arrow DownDecrease volume
F or EscapeToggle fullscreen
Seek direction can be inverted based on your seek bar style preference (normal vs. Raffi style).

Seek Bar Styles

Raffi offers two seek bar display modes: Normal Mode:
  • Shows elapsed time on the left
  • Remaining time on the right
  • Seek bar fills from left to right
Raffi Mode:
  • Shows remaining time (time-to-end)
  • Inverted seek controls for a unique experience
  • Seek bar represents time remaining
Change your preference in Settings > Player > Seek Bar Style.

Picture-in-Picture

Continue watching while using other applications:
  1. Right-click on the video player
  2. Select “Picture in Picture”
  3. The video window stays on top of other applications

Object Fit Toggle

Switch between video display modes to match your content:
  • Contain - Displays the entire video with letterboxing if needed
  • Cover - Fills the player area, potentially cropping the video
Click the aspect ratio button in player controls to toggle between modes.

Advanced Features

Chapter Support

For videos with embedded chapter metadata:
  • Chapters are automatically detected and displayed
  • Navigate between chapters using the chapter selector
  • Chapter titles appear during playback transitions

Automatic Episode Progression

When watching TV series:
  • A “Next Episode” prompt appears near the end of each episode
  • Automatically advances to the next episode when the countdown completes
  • Skip the countdown by clicking the prompt

Error Recovery

The player includes robust error handling:
  • Network Errors - Automatic retry up to 5 times
  • Media Errors - Attempts recovery up to 3 times
  • Manual Retry - Use the retry button if automatic recovery fails
If a stream consistently fails, try selecting a different stream source from the streams menu.

Progress Tracking

Your viewing progress is automatically saved:
  • Resume from where you left off
  • Progress syncs across devices when signed in
  • Episodes marked as watched when 90% complete
  • View progress indicators in your library

Performance Optimizations

Torrent Streaming

When streaming from torrents:
  • Smart buffering - Prioritizes pieces needed for immediate playback
  • File selection - Choose specific files from multi-file torrents
  • Progress indicators - View download progress and peer information
  • Background processing - Continues downloading while you watch

Local File Playback

Local files benefit from optimized playback:
  • Direct playback without transcoding when possible
  • Instant seeking with no buffering
  • Metadata extraction for audio tracks and subtitles
  • Frame-accurate positioning

HLS Server Integration

Raffi includes a built-in Go-based transcoding server:
  • Converts incompatible formats to HLS on-the-fly
  • Handles EAC-3 audio transcoding for compatibility
  • Slice-based seeking for efficient navigation
  • Automatic cleanup when playback ends
The HLS server runs locally on your machine, ensuring your streams remain private and don’t require cloud processing.

Build docs developers (and LLMs) love