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, ytdl

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

ytdl extractor forces using the video player builtin extractor.

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.

use_full_manifest

[permalink]

type: bool

default value: false

description: when using ios_hls and web_hls extractors, this allows selecting video and audio quality in the media player.

note: the video_format option will no longer have effect.

autoplay_next

[permalink]

type: bool

default value: false

description: autoplay next video in current list. mpv plugin only.

show_autoplay_notification

[permalink]

type: bool

default value: false

description: show a notification in mpv when the next autoplay video is appended to the mpv playlist. mpv plugin only.

sub_format

[permalink]

type: string

default value: "vtt"

description: the subtitle format: can be one of vtt, srv3, srt

dim_watched_videos

[permalink]

type: bool

default value: false

description: dim watched videos in current list.

feed_use_rss

[permalink]

type: bool

default value: true

description: use the rss api when generating feed instead of regular list api.

the rss api is faster and has more precise upload time and view counts, but does not show video duration and is limited to 15 videos per channel.

max_feed_videos_per_channel

[permalink]

type: number

default value: 15

description: the max number of videos per channel when generating feed. the limit is 15 for rss api and 100 for regular list api.

max_feed_age

[permalink]

type: string

default value: "1 month"

description: the maximum age of the videos to show when generating feed. the format must be "[number] hour|day|week|month|year", like "1 week", "3 month".