YTLite Playback Speed Options: Complete Guide to Available Speeds
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:
// 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:
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:
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:
// 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
// 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) andautoSpeedIndex(auto-speed) inYTLUserDefaults.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 inYTLite.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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →