ikatube config reference

the following lists the keys and descriptions for ikatube.json

scale

[permalink]

type: number

description: the scale factor, with 1 being 100%. if unset, the scale factor automatically determined by the system scaling setting.

font_size

[permalink]

type: number

default value: 12

description: the font height.

thumb_size

[permalink]

type: number

default value: 72

description: the thumbnail height.

player_path

[permalink]

type: string

default value: "mpv"

description: the path to run the mpv or vlc player. the path must end with "vlc" or "vlc.exe" to be considered vlc.

note: if "ios_hls" is used for the extractor:

video_format

[permalink]

type: string

default value: "1080p60"

description: the video format for playing. if the specified resolution is not available, a lower resolution format from the same codec will be selected.

opus is used for audio for android and android_vr extractors, otherwise aac is used.

av1 formats are only available for android, android_vr, and ios extractors, and are still unavailable for some videos.

vp9 formats are only available for android, android_vr, and ios_hls extractors.

sub_language

[permalink]

type: string

default value: "en"

description: subtitle language for playing.

font

[permalink]

type: string

description: the path to the truetype/opentype font for ui elements.

theme_path

[permalink]

type: string

description: the path to the custom theme. a sample theme is included with ikachan.

theme

[permalink]

type: string

default value: "yuuka"

description: the built-in theme to use: can be one of light, dark, yuuka

mascot

[permalink]

type: string

description: the path to the mascot image file to use for the video info viewer.

key_bindings

[permalink]

type: array

description: set custom key bindings. the array contains objects with the following keys to values of string type:

' , - . / ; = [ ] \ ` ESCAPE ENTER TAB BACKSPACE INSERT DELETE LEFT RIGHT UP DOWN PAGEUP PAGEDOWN HOME END

the following is a sample config that binds f2 to set light theme, and ctrl + alt + c to clear thumbnail cache:

"key_bindings": [
  {"action": "set_light_theme", "mod": "", "key": "F2"},
  {"action": "clear_thumbnail_cache", "mod": "CTRL-ALT", "key": "C"}
]

extractor

[permalink]

type: string

default value: "web_hls"

description: the extractor to use for video url: can be one of android, ios, ios_hls, android_vr, web_hls

live streams are currently only supported for ios_hls and web_hls extractors.

note: android, ios, ios_hls extractors are not recommended and may fail to work. use android_vr, web_hls extractors instead.

note: mediaconnect, mediaconnect_hls extractors are no longer functional.

single_click_select

[permalink]

type: bool

default value: false

description: single click to activate an item in the list instead of double click.

show_extra_metadata

[permalink]

type: bool

default value: false

description: show extra metadata (upload date and views) in the list.

save_window_position

[permalink]

type: bool

default value: false

description: save window position on exit to be used on next startup.

smooth_scroll

[permalink]

type: bool

default value: false

description: enable smooth scrolling.

use_edl

[permalink]

type: bool

default value: false

description: use edl for playback, which generates media titles. currently mpv only.

generate_chapters

[permalink]

type: bool

default value: false

description: automatically generate chapters from the video description. currently mpv only.

save_state

[permalink]

type: bool

default value: false

description: save current playlist and video on exit to be loaded on next startup.

infinite_scroll

[permalink]

type: bool

default value: false

description: autoload the next page when scrolled to the bottom.

playlist_width

[permalink]

type: number

default value: 360

description: the playlist width.

sponsorblock

[permalink]

type: bool

default value: false

description: enable sponsorblock support. currently mpv only.

this generates chapters titled IKATUBE-SPONSOR-SEGMENT for sponsored segments.

to automatically skip sponsored segments, create a lua script with the following content and put it inside the mpv script directory:

mp.observe_property('chapter-metadata/title', 'string', function (_, value)
  if value == 'IKATUBE-SPONSOR-SEGMENT' then
    mp.command('no-osd add chapter 1')
  end
end)

sponsorblock_server

[permalink]

type: string

default value: "sponsor.ajay.app"

description: the address of the sponsorblock server.

allow_hdr

[permalink]

type: bool

default value: false

description: allow playing hdr formats if available.

update_favorites

[permalink]

type: bool

default value: false

description: update favorites info including thumbnail and video count when the playlist or channel is loaded.

save_history

[permalink]

type: bool

default value: false

description: save video watch history.