Newer
Older
{
"name": "Youtube",
"description": "One of the biggest video platforms owned by Google",
"author": "FUTO",
"authorUrl": "https://futo.org",
"sourceUrl": "https://plugins.grayjay.app/Youtube/YoutubeConfig.json",
"repositoryUrl": "https://futo.org",
"scriptUrl": "./YoutubeScript.js",
"iconUrl": "./youtube.png",
"id": "35ae969a-a7db-11ed-afa1-0242ac120002",
"packages": ["Http", "Utilities", "DOMParser"],
"allowEval": false,
"allowUrls": [
"youtube.com",
"m.youtube.com",
"www.youtube.com",
"youtu.be",
"www.youtu.be",
"m.youtu.be",
"s.youtube.com",
"suggestqueries-clients6.youtube.com",
"youtubei.googleapis.com",
],
"settings": [
{
"variable": "authChannels",
"name": "Use Login for Channels",
"description": "Use authenticated client for channel (videos) requests. (eg. for member videos)",
"type": "Boolean",
"default": "false",
"warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading channels."
},
{
"variable": "authDetails",
"name": "Use Login for video details",
"description": "Use authenticated client for video requests. (eg. for member videos)",
"type": "Boolean",
"default": "false",
"warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading videos and comments."
{
"variable": "allowLoginFallback",
"name": "Allow Loginfallback",
"description": "Allow usage of login in case where login required (eg. bot check)",
"type": "Boolean",
"default": "true"
},
{
"variable": "youtubeActivity",
"name": "Provide Youtube Activity",
"description": "Use authenticated client for playback, telling Youtube what you watched.",
"type": "Boolean",
"default": "false"
},
{
"variable": "channelRssOnly",
"name": "Only Use Channel RSS Feeds (Inferior)",
"description": "Exclusively use channel RSS feeds for channel content, may result in inferior results, and only recent videos. But may be faster and reduce rate limiting.",
"type": "Boolean",
"default": "false",
"warningDialog": "Using RSS feeds will have inferior results, and may add shorts in the channel videos and subscriptions.\n\nOld videos may also be unavailable."
},
{
"variable": "allowAgeRestricted",
"name": "Allow Age Restricted",
"description": "Allow watching of age restricted videos",
"type": "Boolean",
"default": "false"
{
"variable": "allowControversialRestricted",
"name": "Allow Controversial Restricted",
"description": "Allow watching of controversial restricted videos",
"type": "Boolean",
"default": "false"
},
"name": "Force Experimental UMP Streams",
"description": "Force usage of experimental implementation of UMP. May be unstable and cost more performance.",
{
"variable": "useAggressiveUMPRecovery",
"name": "Use Aggressive UMP Recovery",
"description": "This feature allows UMP to refetch the entire page to recover from ip changes and such.",
"type": "Boolean",
"default": "true"
},
{
"variable": "verifyIOSPlayback",
"name": "Verify IOS Playback",
"description": "This feature will check if iOS sources are playable beyond 60 seconds, or else fallback to other sources.\nMay add a minor delay on video load (< 0.2s)",
"type": "Boolean",
"default": "true"
},
{
"variable": "showVerboseToasts",
"name": "Show Verbose Messages",
"description": "Show messages that give more information about what is happening, might be considered annoying for some.",
"type": "Boolean",
"default": "false"
},
{
"variable": "youtubeDislikerHeader",
"name": "Return Youtube Dislike",
"description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)",
"type": "Header"
},
{
"variable": "youtubeDislikes",
"name": "Enable",
"description": "Use Return YoutubeDislike to provide dislikes for videos",
"type": "Boolean",
"default": "false"
},
{
"variable": "sponsorBlockHeader",
"name": "SponsorBlock",
"description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.",
"type": "Header"
},
{
"variable": "sponsorBlock",
"name": "Enable",
"description": "If enabled support creators in other ways.\nDo not freeload.",
"type": "Boolean",
"default": "false",
"warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways."
},
{
"variable": "sponsorBlockNoVotes",
"name": "Allow No Vote Segments",
"description": "Allow segments without votes, this may cause questionable video skips.",
"type": "Boolean",
"default": "false",
"dependency": "sponsorBlock"
},
Kelvin
committed
{
"variable": "sponsorBlockCat_Sponsor",
"name": "Skip Sponsors",
"description": "Skip segments labeled as sponsors",
"type": "Dropdown",
"default": "1",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Intro",
"name": "Skip Intros",
"description": "Skip segments labeled as intros",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Outro",
"name": "Skip Outros",
"description": "Skip segments labeled as outros",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Self",
"name": "Skip Self-Promos",
"description": "Skip segments labeled as self-promos",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Offtopic",
"name": "Skip Music-Offtopic",
"description": "Skip segments labeled as music-offtopic",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Preview",
"name": "Skip Preview",
"description": "Skip segments labeled as previews",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
Kelvin
committed
},
{
"variable": "sponsorBlockCat_Filler",
"name": "Skip Fillers",
"description": "Skip segments labeled as fillers",
"type": "Dropdown",
"default": "0",
"dependency": "sponsorBlock",
"options": ["No skip", "Manual", "Automatic"]
},
{
"variable": "advanced",
"name": "Advanced",
"description": "These are settings not intended for most users, but may help development or power users.",
"type": "Header"
},
{
"variable": "allow_av1",
"name": "Allow AV1",
"description": "Adds AV1 option when available, MAY NOT BE SUPPORTED YET!",
"type": "Boolean",
"default": "false",
"warningDialog": "AV1 support might not work yet, this allows you to return the stream even if its not supported (for testing)"
},
{
"variable": "notify_cipher",
"name": "Show Cipher every Video",
"description": "Shows a toast with the cipher when loading a video",
"type": "Boolean",
"default": "false"
},
{
"variable": "notify_bg",
"name": "Show every new Botguard Token",
"description": "Shows a toast with the botguard token used changed",
"type": "Boolean",
"default": "false"
},
{
"variable": "notify_ump_recovery",
"name": "Show every time UMP disconnects",
"description": "Shows a toast whenever UMP goes into a reconnection mode",
"type": "Boolean",
"default": "false"
"developerSubmitUrl": "https://dev.grayjay.app/api/Dev/Submit",
"captcha": {
"userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36",
"captchaUrl": null,
"cookiesToFind": ["GOOGLE_ABUSE_EXEMPTION"]
},
"userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36",
"completionUrl": "https://m.youtube.com/youtubei/v1/guide?*",
"loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620",
"domainHeadersToFind": {
".youtube.com": ["authorization"]
},
"cookiesExclOthers": false,
"loginWarning": "You must select a profile after login for authentication to complete."
"primaryClaimFieldType": 1,
"changelog": {
"Feature: Verify IOS Playback setting (true by default), checks if iOS sources can be played beyond 60 seconds, or fallback to others.",
"Feature: Channel shorts fetching support (may require app update to view new channel tab)"
],
"Fix: UMP failing on initial load"
],
"Feature: UMP MP4 support (fixes no audio or only 360p for older videos)",