Skip to content

DeArrow

Repohttps://github.com/firefox-extensions-declarative/DeArrow-declarative
Extension IDdeArrow@ajay.app

Run npm install and then npm run build:firefox.

To create the XPI, run:

Terminal window
npx web-ext build -s dist -a web-ext-artifacts

The XPI will be located in web-ext-artifacts/.

Keyboard shortcut.

Key name.
Type: string | null

Keyboard code.
Type: string | null

Whether Ctrl is required.
Type: boolean | null

Whether Alt is required.
Type: boolean | null

Whether Shift is required.
Type: boolean | null

Title formatting mode.

Type: -1 | 0 | 1 | 2 | 3 | 4

  • -1: disable
  • 0: capitalize words
  • 1: title case
  • 2: sentence case
  • 3: lower case
  • 4: first letter uppercase

How thumbnail cache/server rendering is used.

Type: 0 | 1 | 2

  • 0: disable
  • 1: all pages except watch
  • 2: all pages

Fallback thumbnail source when no custom thumbnail exists.

Type: 0 | 1 | 2 | 3

  • 0: random time
  • 1: blank
  • 2: original
  • 3: auto-generated

Which YouTube auto-generated thumbnail to prefer.

Type: 0 | 1 | 2

  • 0: start
  • 1: middle
  • 2: end

Per-channel override profile.

Human-readable profile name.
Type: string

Override title replacement behavior.
Type: boolean | null

Override thumbnail replacement behavior.
Type: boolean | null

Override default custom/original display behavior.
Type: boolean | null

Override whether crowdsourced titles are used.
Type: boolean | null

Override title formatting mode.
Type: TitleFormatting | null

Override emoji cleanup behavior.
Type: boolean | null

Override thumbnail fallback mode.
Type: ThumbnailFallbackOption | null

Override auto-generated thumbnail preference.
Type: ThumbnailFallbackAutogeneratedOption | null

Enable experimental features.
Type: boolean
Default: true

Note: key name is misspelled upstream and must stay allowExpirements.

Show donation link.
Type: boolean
Default: true

Show upsell UI.
Type: boolean
Default: true

When vip is true, submit actions without using VIP powers.
Type: boolean
Default: true

Use dark mode in extension UI.
Type: boolean
Default: true

List of Invidious instances.
Type: Array<string>
Default: []

Keep unsubmitted title/thumbnail edits locally.
Type: boolean
Default: true

Keep unsubmitted edits in private windows.
Type: boolean
Default: false

Thumbnail saturation percentage.
Type: number
Default: 100

Formatting mode for titles.
Type: TitleFormatting
Default: 1 for English UI, -1 otherwise

Apply formatting to custom titles.
Type: boolean
Default: true

Apply formatting to original titles used as fallback.
Type: boolean
Default: true

Remove decorative/fancy emoji-style text where supported.
Type: boolean
Default: true

Restrict title case formatting to English.
Type: boolean
Default: false

DeArrow/SponsorBlock API server.
Type: string
Default: value from repo config.json

Thumbnail cache/render server.
Type: string
Default: value from repo config.json

Network fetch timeout in milliseconds.
Type: number
Default: 7000

Delay before local thumbnail rendering starts, in milliseconds.
Type: number
Default: 2000

Maximum local thumbnail render time in milliseconds.
Type: number
Default: 25000

How thumbnail cache/server rendering is used.
Type: ThumbnailCacheOption
Default: 2

Show guideline/help UI.
Type: boolean
Default: true

Show onboarding/help UI for random thumbnail fallback behavior.
Type: boolean
Default: false

Fallback thumbnail source.
Type: ThumbnailFallbackOption
Default: 0

Preferred auto-generated thumbnail slot.
Type: ThumbnailFallbackAutogeneratedOption
Default: 0

Show live cover thumbnails when appropriate.
Type: boolean
Default: true

Master enable/disable switch.
Type: boolean
Default: true

Show custom branding by default.
Type: boolean
Default: true

Always show the show-original toggle when branding UI is available.
Type: boolean
Default: false

Show original branding on hover.
Type: boolean
Default: false

Show original branding when hovering the video area.
Type: boolean
Default: false

In casual mode, show custom branding on hover.
Type: boolean
Default: false

Enable title replacement.
Type: boolean
Default: true

Enable thumbnail replacement.
Type: boolean
Default: true

Prefer crowdsourced titles when available.
Type: boolean
Default: true

Maximum displayed title lines.
Type: number
Default: 3

Enable casual mode.
Type: boolean
Default: false

Minimum vote threshold per casual category.
Type: Record<string, number>
Default: { funny: 1, creative: 1, clever: 1, descriptive: 1, other: 1 }

In casual mode, prefer original thumbnails when applicable.
Type: boolean
Default: false

Show casual icon only for custom branding.
Type: boolean
Default: false

Apply title formatting to casual titles.
Type: boolean
Default: true

Show onboarding/help UI for casual mode.
Type: boolean
Default: true

Map of channel IDs to configuration IDs.
Type: Record<string, string>
Default: {}

Map of configuration IDs to per-channel override profiles.
Type: Record<string, CustomConfiguration>
Default: {}

Show indicator for formatted titles.
Type: boolean
Default: true

Count replaced titles/thumbnails in stats.
Type: boolean
Default: true

Ignore A/B tested thumbnails where detected.
Type: boolean
Default: true

Ignore translated titles where detected.
Type: boolean
Default: false

Hide branding details while fetching data.
Type: boolean
Default: true

Open DeArrow menu keybind.
Type: Keybind
Default: { key: "d", shift: true }

Toggle extension enabled/disabled keybind.
Type: Keybind
Default: { key: "e", ctrl: true, shift: true, alt: true }