# YTLite Playback Speed Options: Complete Guide to Available Speeds

> Discover YTLite playback speed options. Explore 13 preset speeds from 0.25x to 5.0x plus 5 extra intermediate speeds for ultimate control. Enhance your viewing experience today.

- Repository: [Dan/YTLite](https://github.com/dayanch96/YTLite)
- Tags: deep-dive
- Published: 2026-04-22

---

**YTLite provides 13 preset playback speeds ranging from 0.25× to 5.0×, with an optional "Extra Speed Options" toggle that adds 5 intermediate speeds including 2.5× and 3.5×.**

YTLite is a popular iOS YouTube tweak that extends playback speed control beyond YouTube's native limits. This article breaks down every available **YTLite playback speed option** based on the actual source code, showing exactly which speeds are available, where they're defined, and how to use them programmatically.

---

## Complete List of YTLite Playback Speeds

### Standard Speed Presets

The base **YTLite playback speed options** are defined in `YTLite.x` lines 68-69 and exposed through the Settings UI in `Settings.x`:

| Speed | Use Case |
|-------|----------|
| Disabled | Turns off automatic speed features |
| Default | Uses YouTube's native setting |
| 0.25× | Slow-motion analysis |
| 0.5× | Half-speed playback |
| 0.75× | Slightly slowed for comprehension |
| 1.0× | Normal speed |
| 1.25× | Slightly faster, minimal pitch shift |
| 1.5× | Common lecture/podcast speed |
| 1.75× | Aggressive speedup |
| 2.0× | Double speed |
| 3.0× | Triple speed |
| 4.0× | Quadruple speed |
| 5.0× | Maximum standard speed |

### Extra Speed Options (Optional)

When the `extraSpeedOptions` toggle is enabled in `YTLite.x` lines 26-34, five additional **YTLite playback speed options** are injected into the varispeed menu:

```

2.5×, 3×, 3.5×, 4×, 5×

```

These fill gaps between the standard presets, though notably `3×` and `4×` duplicate existing speeds while `2.5×` and `3.5×` are unique additions.

---

## How YTLite Playback Speeds Work Internally

### Three-Layer Architecture

The **YTLite playback speed** system operates across three distinct layers:

| Layer | File | Purpose |
|-------|------|---------|
| User Defaults | `YTLUserDefaults.m` | Stores `speedIndex` and `autoSpeedIndex` preferences |
| Settings UI | `Settings.x` | Displays picker with speed labels |
| Playback Engine | `YTLite.x` | Applies numeric rates to the player |

### Default Registration

In `YTLUserDefaults.m` line 28, the defaults are registered:

```objc
// Default speedIndex is 1 ("Default"), 0 disables the feature
// Default autoSpeedIndex is 1 ("Default")

```

This means **YTLite playback speed** features are active by default with the "Default" setting, passing through to YouTube's native behavior until changed.

### Settings UI Construction

The picker array in `Settings.x` lines 43-44 and 48-50 builds the visible options:

```objc
NSArray *speedLabels = @[LOC(@"Disabled"), LOC(@"Default"),
                         @"0.25×", @"0.5×", @"0.75×", @"1.0×",
                         @"1.25×", @"1.5×", @"1.75×", @"2.0×",
                         @"3.0×", @"4.0×", @"5.0×"];

```

When a user selects a row, the code calls `ytlSetInt(index, @"speedIndex")` to persist the choice.

### Playback Engine Application

The actual numeric rates applied to the player are defined in `YTLite.x` lines 68-69:

```objc
NSArray *speedLabels = @[@0.25, @0.5, @0.75, @1.0,
                         @1.25, @1.5, @1.75, @2.0,
                         @3.0, @4.0, @5.0];

```

Two features use this array:

- **Auto-speed**: Applies `speedLabels[ytlInt(@"autoSpeedIndex")]` automatically
- **Hold-to-speed**: Temporarily applies `speedLabels[ytlInt(@"speedIndex")]` during long-press

---

## Programmatically Controlling YTLite Playback Speeds

### Setting Speed Preferences

From another tweak component or custom code, you can manipulate **YTLite playback speed** settings directly:

```objc
// Set "Hold-to-speed" to 1.0× (index 5)
ytlSetInt(5, @"speedIndex");

// Set auto-speed to 3.0× (index 8)
ytlSetInt(8, @"autoSpeedIndex");

// Disable hold-to-speed feature
ytlSetInt(0, @"speedIndex");

```

The `ytlSetInt` function writes to the same `NSUserDefaults` that the Settings UI reads from, ensuring consistency across the tweak.

### Reading Current Settings

```objc
// Get current hold-to-speed preference
NSInteger speedIdx = ytlInt(@"speedIndex");

// Map to actual rate
NSArray *rates = @[@0.25, @0.5, @0.75, @1.0,
                   @1.25, @1.5, @1.75, @2.0,
                   @3.0, @4.0, @5.0];
float currentRate = [rates[speedIdx] floatValue];

```

---

## Speed Index Reference Table

| Index | Speed | Available In |
|-------|-------|--------------|
| 0 | Disabled | All modes |
| 1 | Default | All modes |
| 2 | 0.25× | Standard + Extra |
| 3 | 0.5× | Standard + Extra |
| 4 | 0.75× | Standard + Extra |
| 5 | 1.0× | Standard + Extra |
| 6 | 1.25× | Standard + Extra |
| 7 | 1.5× | Standard + Extra |
| 8 | 1.75× | Standard + Extra |
| 9 | 2.0× | Standard + Extra |
| 10 | 3.0× | Standard + Extra |
| 11 | 4.0× | Standard + Extra |
| 12 | 5.0× | Standard + Extra |

When **Extra Speed Options** is enabled, additional UI entries appear for 2.5×, 3×, 3.5×, 4×, and 5× — though 3×, 4×, and 5× duplicate existing indices.

---

## Summary

- **YTLite playback speed options** include 13 standard presets from 0.25× to 5.0×, plus "Disabled" and "Default" settings
- The **Extra Speed Options** toggle adds 5 intermediate speeds (2.5×, 3×, 3.5×, 4×, 5×) to the varispeed menu
- Speed preferences are stored via `speedIndex` (hold-to-speed) and `autoSpeedIndex` (auto-speed) in `YTLUserDefaults.m`
- The numeric rate array `@[@0.25, @0.5, @0.75, @1.0, @1.25, @1.5, @1.75, @2.0, @3.0, @4.0, @5.0]` drives both the Settings UI and the playback engine in `YTLite.x`

---

## Frequently Asked Questions

### What is the slowest playback speed available in YTLite?

The slowest **YTLite playback speed** is **0.25×**, accessible at index 2 in the speed picker. This is one-quarter of normal speed, useful for detailed analysis of fast-moving content. The speed is defined in `YTLite.x` as the first element of the numeric rates array.

### Does YTLite support speeds faster than 2×?

Yes, **YTLite playback speed options** extend well beyond 2×. The standard preset includes **3.0×, 4.0×, and 5.0×** at indices 10, 11, and 12 respectively. These are defined in `YTLite.x` lines 68-69 and appear in the Settings UI picker constructed in `Settings.x`.

### What is the difference between "Default" and "1.0×" in YTLite?

"**Default**" (index 1) tells YTLite to defer to YouTube's native playback speed setting, while "**1.0×**" (index 5) explicitly forces normal speed regardless of YouTube's default. This distinction matters if you have YouTube Premium's default speed preference set differently. The `speedIndex` storage in `YTLUserDefaults.m` handles both values identically as integers.

### How do I enable the extra speed options like 2.5× and 3.5×?

Navigate to YTLite's Settings and enable the "**Extra Speed Options**" toggle. When active, this feature injects additional preset speeds into the varispeed menu: **2.5×, 3×, 3.5×, 4×, and 5×**. The implementation in `YTLite.x` lines 26-34 handles this injection; note that 3×, 4×, and 5× duplicate existing standard options while 2.5× and 3.5× are unique additions.