[
  {
    "name": "Alternative thumbnails",
    "description": "Adds options to replace video thumbnails using the DeArrow API or image captures from the video.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Ambient mode control",
    "description": "Adds options to disable Ambient mode and to bypass Ambient mode restrictions.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Bitrate default value",
    "description": "Sets the audio quality to \u0027Always High\u0027 when you first install the app.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Bypass URL redirects",
    "description": "Adds an option to bypass URL redirects and open the original URL directly.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Bypass image region restrictions",
    "description": "Adds an option to use a different host for static images, so that images blocked in some countries can be received.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Bypass image region restrictions",
    "description": "Adds an option to use a different host for static images, so that images blocked in some countries can be received.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Certificate spoof",
    "description": "Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.",
    "use": true,
    "dependencies": [],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Change form factor",
    "description": "Adds an option to change the UI appearance to a phone, tablet, or automotive device.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Change live ring click action",
    "description": "Adds an option to open the channel instead of the live stream when clicking on the live ring.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Change package name",
    "description": "Changes the package name for Reddit to the name specified in patch options.",
    "use": false,
    "dependencies": [],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": [
      {
        "key": "packageNameReddit",
        "title": "Package name of Reddit",
        "description": "The name of the package to rename the app to.",
        "required": true,
        "type": "kotlin.String",
        "default": "com.reddit.frontpage",
        "values": {
          "Clone": "com.reddit.frontpage.revanced",
          "Default": "com.reddit.frontpage.rvx",
          "Original": "com.reddit.frontpage"
        }
      }
    ]
  },
  {
    "name": "Change player flyout menu toggles",
    "description": "Adds an option to use text toggles instead of switch toggles within the additional settings menu.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Change share sheet",
    "description": "Adds an option to change the in-app share sheet to the system share sheet.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Change share sheet",
    "description": "Adds an option to change the in-app share sheet to the system share sheet.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Change start page",
    "description": "Adds an option to set which page the app opens in instead of the homepage.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Change start page",
    "description": "Adds an option to set which page the app opens in instead of the homepage.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Change version code",
    "description": "Changes the version code of the app to the value specified in patch options. Except when mounting, this can prevent app stores from updating the app and allow the app to be installed over an existing installation that has a higher version code. By default, the highest version code is set.",
    "use": false,
    "dependencies": [],
    "compatiblePackages": null,
    "options": [
      {
        "key": "versionCode",
        "title": "Version code",
        "description": "The version code to use. (1 ~ 2147483647)",
        "required": true,
        "type": "kotlin.String",
        "default": "2147483647",
        "values": {
          "Lowest": "1",
          "Highest": "2147483647"
        }
      }
    ]
  },
  {
    "name": "Custom Shorts action buttons",
    "description": "Changes, at compile time, the icon of the action buttons of the Shorts player.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "iconType",
        "title": "Shorts icon style ",
        "description": "The style of the icons for the action buttons in the Shorts player.",
        "required": true,
        "type": "kotlin.String",
        "default": "cairo",
        "values": {
          "Cairo": "cairo",
          "Outline": "outline",
          "OutlineCircle": "outlinecircle",
          "Round": "round",
          "YoutubeOutline": "youtubeoutline",
          "YouTube": "youtube"
        }
      }
    ]
  },
  {
    "name": "Custom branding icon for YouTube",
    "description": "Changes the YouTube app icon to the icon specified in patch options.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "appIcon",
        "title": "App icon",
        "description": "The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png",
        "required": true,
        "type": "kotlin.String",
        "default": "revancify_blue",
        "values": {
          "AFN Blue": "afn_blue",
          "AFN Red": "afn_red",
          "MMT": "mmt",
          "Revancify Blue": "revancify_blue",
          "Revancify Red": "revancify_red",
          "YouTube": "youtube"
        }
      },
      {
        "key": "changeSplashIcon",
        "title": "Change splash icons",
        "description": "Apply the custom branding icon to the splash screen. Supports from YouTube 18.29.38 to YouTube 19.16.39.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      },
      {
        "key": "restoreOldSplashAnimation",
        "title": "Restore old splash animation",
        "description": "Restore the old style splash animation.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      }
    ]
  },
  {
    "name": "Custom branding icon for YouTube Music",
    "description": "Changes the YouTube Music app icon to the icon specified in patch options.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "appIcon",
        "title": "App icon",
        "description": "The icon to apply to the app.\n\nIf a path to a folder is provided, the folder must contain the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders must contain the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png",
        "required": true,
        "type": "kotlin.String",
        "default": "revancify_blue",
        "values": {
          "AFN Blue": "afn_blue",
          "AFN Red": "afn_red",
          "MMT": "mmt",
          "Revancify Blue": "revancify_blue",
          "Revancify Red": "revancify_red",
          "YouTube Music": "youtube_music"
        }
      },
      {
        "key": "changeSplashIcon",
        "title": "Change splash icons",
        "description": "Apply the custom branding icon to the splash screen.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      },
      {
        "key": "restoreOldSplashIcon",
        "title": "Restore old splash icon",
        "description": "Restore the old style splash icon.\n\nIf you enable both the old style splash icon and the Cairo splash animation,\n\nOld style splash icon will appear first and then the Cairo splash animation will start.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Custom branding name for Reddit",
    "description": "Changes the Reddit app name to the name specified in patch options.",
    "use": false,
    "dependencies": [],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": [
      {
        "key": "appName",
        "title": "App name",
        "description": "The name of the app.",
        "required": true,
        "type": "kotlin.String",
        "default": "Reddit",
        "values": {
          "Default": "RVX Reddit",
          "Original": "Reddit"
        }
      }
    ]
  },
  {
    "name": "Custom branding name for YouTube",
    "description": "Changes the YouTube app name to the name specified in patch options.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "appName",
        "title": "App name",
        "description": "The name of the app.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX",
        "values": {
          "ReVanced Extended": "ReVanced Extended",
          "RVX": "RVX",
          "YouTube RVX": "YouTube RVX",
          "YouTube": "YouTube"
        }
      }
    ]
  },
  {
    "name": "Custom branding name for YouTube Music",
    "description": "Changes the YouTube Music app name to the name specified in patch options.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "appNameNotification",
        "title": "App name in notification panel",
        "description": "The name of the app as it appears in the notification panel.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX Music",
        "values": {
          "ReVanced Extended Music": "ReVanced Extended Music",
          "RVX Music": "RVX Music",
          "YouTube Music": "YouTube Music",
          "YT Music": "YT Music"
        }
      },
      {
        "key": "appNameLauncher",
        "title": "App name in launcher",
        "description": "The name of the app as it appears in the launcher.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX Music",
        "values": {
          "ReVanced Extended Music": "ReVanced Extended Music",
          "RVX Music": "RVX Music",
          "YouTube Music": "YouTube Music",
          "YT Music": "YT Music"
        }
      }
    ]
  },
  {
    "name": "Custom double tap length",
    "description": "Adds Double-tap to seek values that are specified in patch options.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "doubleTapLengthArrays",
        "title": "Double-tap to seek values",
        "description": "A list of custom Double-tap to seek lengths to be added, separated by commas.",
        "required": true,
        "type": "kotlin.String",
        "default": "3, 5, 10, 15, 20, 30, 60, 120, 180",
        "values": null
      }
    ]
  },
  {
    "name": "Custom header for YouTube",
    "description": "Applies a custom header in the top left corner within the app.",
    "use": false,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "customHeader",
        "title": "Custom header",
        "description": "The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n[Generic header]\n\n- yt_wordmark_header_light.png\n- yt_wordmark_header_dark.png\n\nThe image dimensions must be as follows:\n\n- drawable-xxxhdpi: 488px x 192px\n- drawable-xxhdpi: 366px x 144px\n- drawable-xhdpi: 244px x 96px\n- drawable-hdpi: 184px x 72px\n- drawable-mdpi: 122px x 48px\n\n[Premium header]\n\n- yt_premium_wordmark_header_light.png\n- yt_premium_wordmark_header_dark.png\n\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 516px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px",
        "required": true,
        "type": "kotlin.String",
        "default": "custom_branding_icon",
        "values": {
          "Custom branding icon": "custom_branding_icon"
        }
      }
    ]
  },
  {
    "name": "Custom header for YouTube Music",
    "description": "Applies a custom header in the top left corner within the app.",
    "use": false,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "customHeader",
        "title": "Custom header",
        "description": "The header to apply to the app.\n\nPatch option \u0027Custom branding icon\u0027 applies only when:\n\n1. Patch \u0027Custom branding icon for YouTube Music\u0027 is included.\n2. Patch option for \u0027Custom branding icon for YouTube Music\u0027 is selected from the preset.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- action_bar_logo.png\n- logo_music.png\n- ytm_logo.png\n\nThe image \u0027action_bar_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 320px x 96px\n- drawable-xxhdpi: 240px x 72px\n- drawable-xhdpi: 160px x 48px\n- drawable-hdpi: 121px x 36px\n- drawable-mdpi: 80px x 24px\n\nThe image \u0027logo_music.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 576px x 200px\n- drawable-xxhdpi: 432px x 150px\n- drawable-xhdpi: 288px x 100px\n- drawable-hdpi: 217px x 76px\n- drawable-mdpi: 144px x 50px\n\nThe image \u0027ytm_logo.png\u0027 dimensions must be as follows:\n\n- drawable-xxxhdpi: 412px x 144px\n- drawable-xxhdpi: 309px x 108px\n- drawable-xhdpi: 206px x 72px\n- drawable-hdpi: 155px x 54px\n- drawable-mdpi: 103px x 36px",
        "required": true,
        "type": "kotlin.String",
        "default": "custom_branding_icon",
        "values": {
          "Custom branding icon": "custom_branding_icon"
        }
      }
    ]
  },
  {
    "name": "Dark theme",
    "description": "Changes the app\u0027s dark theme to the values specified in patch options.",
    "use": true,
    "dependencies": [
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "darkThemeBackgroundColor",
        "title": "Dark theme background color",
        "description": "Can be a hex color (#AARRGGBB) or a color resource reference.",
        "required": false,
        "type": "kotlin.String",
        "default": "@android:color/black",
        "values": {
          "Amoled Black": "@android:color/black",
          "Catppuccin (Mocha)": "#FF181825",
          "Dark Pink": "#FF290025",
          "Dark Blue": "#FF001029",
          "Dark Green": "#FF002905",
          "Dark Yellow": "#FF282900",
          "Dark Orange": "#FF291800",
          "Dark Red": "#FF290000"
        }
      },
      {
        "key": "materialYou",
        "title": "MaterialYou",
        "description": "Applies the MaterialYou theme for Android 12+ devices.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Description components",
    "description": "Adds options to hide and disable description components.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable Cairo splash animation",
    "description": "Adds an option to disable Cairo splash animation.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "7.06.54",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable DRC audio",
    "description": "Adds an option to disable DRC (Dynamic Range Compression) audio.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable QUIC protocol",
    "description": "Adds an option to disable CronetEngine\u0027s QUIC protocol.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable QUIC protocol",
    "description": "Adds an option to disable CronetEngine\u0027s QUIC protocol.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable dislike redirection",
    "description": "Adds an option to disable redirection to the next track when clicking the Dislike button.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable edge-to-edge display",
    "description": "Disable forced edge-to-edge display on Android 15+ by changing the app\u0027s target SDK version. This patch does not work if the app is installed by mounting.",
    "use": false,
    "dependencies": [],
    "compatiblePackages": null,
    "options": []
  },
  {
    "name": "Disable forced auto audio tracks",
    "description": "Adds an option to disable audio tracks from being automatically enabled.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable forced auto captions",
    "description": "Adds an option to disable captions from being automatically enabled.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable forced auto captions",
    "description": "Adds an option to disable captions from being automatically enabled.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable haptic feedback",
    "description": "Adds options to disable haptic feedback when swiping in the video player.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable layout updates",
    "description": "Adds an option to disable layout updates by server.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable music video in album",
    "description": "Adds option to redirect music videos from albums for non-premium users.",
    "use": false,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Disable resuming Miniplayer on startup",
    "description": "Adds an option to disable the Miniplayer \u0027Continue watching\u0027 from resuming on app startup.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable resuming Shorts on startup",
    "description": "Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Disable screenshot popup",
    "description": "Adds an option to disable the popup that appears when taking a screenshot.",
    "use": true,
    "dependencies": [
      "Settings for Reddit",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Disable splash animation",
    "description": "Adds an option to disable the splash animation on app startup.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Enable OPUS codec",
    "description": "Adds an option to enable the OPUS audio codec if the player response includes it.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Enable OPUS codec",
    "description": "Adds an option to enable the OPUS audio codec if the player response includes it.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Enable debug logging",
    "description": "Adds an option to enable debug logging.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Enable debug logging",
    "description": "Adds an option to enable debug logging.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Enable gradient loading screen",
    "description": "Adds an option to enable the gradient loading screen.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Enable landscape mode",
    "description": "Adds an option to enable landscape mode when rotating the screen on phones.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Flyout menu components",
    "description": "Adds options to hide or change flyout menu components.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Force hide player buttons background",
    "description": "Removes, at compile time, the dark background surrounding the video player controls.",
    "use": false,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Fullscreen components",
    "description": "Adds options to hide or change components related to fullscreen.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "GmsCore support",
    "description": "Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "gmsCoreVendorGroupId",
        "title": "GmsCore vendor group ID",
        "description": "The vendor\u0027s group ID for GmsCore.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.revanced",
        "values": {
          "ReVanced": "app.revanced"
        }
      },
      {
        "key": "checkGmsCore",
        "title": "Check GmsCore",
        "description": "Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      },
      {
        "key": "packageNameYouTube",
        "title": "Package name of YouTube",
        "description": "The name of the package to use in GmsCore support.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.rvx.android.youtube",
        "values": {
          "Clone": "com.rvx.android.youtube",
          "Default": "app.rvx.android.youtube"
        }
      },
      {
        "key": "packageNameYouTubeMusic",
        "title": "Package name of YouTube Music",
        "description": "The name of the package to use in GmsCore support.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.rvx.android.apps.youtube.music",
        "values": {
          "Clone": "com.rvx.android.apps.youtube.music",
          "Default": "app.rvx.android.apps.youtube.music"
        }
      }
    ]
  },
  {
    "name": "GmsCore support",
    "description": "Allows patched Google apps to run without root and under a different package name by using GmsCore instead of Google Play Services.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "gmsCoreVendorGroupId",
        "title": "GmsCore vendor group ID",
        "description": "The vendor\u0027s group ID for GmsCore.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.revanced",
        "values": {
          "ReVanced": "app.revanced"
        }
      },
      {
        "key": "checkGmsCore",
        "title": "Check GmsCore",
        "description": "Check if GmsCore is installed on the device and has battery optimizations disabled when the app starts. \n\nIf GmsCore is not installed the app will not work, so disabling this is not recommended.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      },
      {
        "key": "packageNameYouTube",
        "title": "Package name of YouTube",
        "description": "The name of the package to use in GmsCore support.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.rvx.android.youtube",
        "values": {
          "Clone": "com.rvx.android.youtube",
          "Default": "app.rvx.android.youtube"
        }
      },
      {
        "key": "packageNameYouTubeMusic",
        "title": "Package name of YouTube Music",
        "description": "The name of the package to use in GmsCore support.",
        "required": true,
        "type": "kotlin.String",
        "default": "app.rvx.android.apps.youtube.music",
        "values": {
          "Clone": "com.rvx.android.apps.youtube.music",
          "Default": "app.rvx.android.apps.youtube.music"
        }
      }
    ]
  },
  {
    "name": "Hide Recently Visited shelf",
    "description": "Adds an option to hide the Recently Visited shelf in the sidebar.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Hide Shorts dimming",
    "description": "Removes, at compile time, the dimming effect at the top and bottom of Shorts videos.",
    "use": false,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide accessibility controls dialog",
    "description": "Removes, at compile time, accessibility controls dialog \u0027Turn on accessibility controls for the video player?\u0027.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide account components",
    "description": "Adds options to hide components related to the account menu.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide action bar components",
    "description": "Adds options to hide action bar components and replace the offline download button with an external download button.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide action buttons",
    "description": "Adds options to hide action buttons under videos.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide ads",
    "description": "Adds options to hide ads.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "BytecodePatch",
      "Navigation bar components",
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide ads",
    "description": "Adds options to hide ads.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Hide ads",
    "description": "Adds options to hide ads.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide comments components",
    "description": "Adds options to hide components related to comments.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide feed components",
    "description": "Adds options to hide components related to feeds.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide feed flyout menu",
    "description": "Adds the ability to hide feed flyout menu components using a custom filter.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide layout components",
    "description": "Adds options to hide general layout components.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide layout components",
    "description": "Adds options to hide general layout components.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide navigation buttons",
    "description": "Adds options to hide buttons in the navigation bar.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Hide overlay filter",
    "description": "Removes, at compile time, the dark overlay that appears when player flyout menus are open.",
    "use": false,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide player buttons",
    "description": "Adds options to hide buttons in the video player.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide player flyout menu",
    "description": "Adds options to hide player flyout menu components.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hide player overlay filter",
    "description": "Removes, at compile time, the dark overlay that appears when single-tapping in the player.",
    "use": false,
    "dependencies": [],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Hide recommended communities shelf",
    "description": "Adds an option to hide the recommended communities shelves in subreddits.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Hide shortcuts",
    "description": "Remove, at compile time, the app shortcuts that appears when the app icon is long pressed.",
    "use": false,
    "dependencies": [
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "explore",
        "title": "Hide Explore",
        "description": "Hide Explore from shortcuts.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      },
      {
        "key": "subscriptions",
        "title": "Hide Subscriptions",
        "description": "Hide Subscriptions from shortcuts.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      },
      {
        "key": "search",
        "title": "Hide Search",
        "description": "Hide Search from shortcuts.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      },
      {
        "key": "shorts",
        "title": "Hide Shorts",
        "description": "Hide Shorts from shortcuts.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": true,
        "values": null
      }
    ]
  },
  {
    "name": "Hook YouTube Music actions",
    "description": "Adds support for opening music in RVX Music using the in-app YouTube Music button.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Hook download actions",
    "description": "Adds support to download videos with an external downloader app using the in-app download button.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "MaterialYou",
    "description": "Applies the MaterialYou theme for Android 12+ devices.",
    "use": false,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Miniplayer",
    "description": "Adds options to change the in-app minimized player, and if patching target 19.16+ adds options to use modern miniplayers.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Navigation bar components",
    "description": "Adds options to hide or change components related to the navigation bar.",
    "use": true,
    "dependencies": [
      "Change start page",
      "ResourcePatch",
      "ResourcePatch",
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Navigation bar components",
    "description": "Adds options to hide or change components related to the navigation bar.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube",
      "ResourcePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Open links directly",
    "description": "Adds an option to skip over redirection URLs in external links.",
    "use": true,
    "dependencies": [
      "Settings for Reddit",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Open links externally",
    "description": "Adds an option to always open links in your browser instead of in the in-app-browser.",
    "use": true,
    "dependencies": [
      "Settings for Reddit",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Open links externally",
    "description": "Adds an option to always open links in your browser instead of the in-app browser.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Overlay buttons",
    "description": "Adds options to display useful overlay buttons in the video player.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "iconType",
        "title": "Icon type",
        "description": "The icon type.",
        "required": true,
        "type": "kotlin.String",
        "default": "bold",
        "values": {
          "Bold": "bold",
          "Rounded": "rounded",
          "Thin": "thin"
        }
      },
      {
        "key": "bottomMargin",
        "title": "Bottom margin",
        "description": "The bottom margin for the overlay buttons and timestamp.",
        "required": true,
        "type": "kotlin.String",
        "default": "2.5dip",
        "values": {
          "Default": "2.5dip",
          "Minimum": "0.1dip",
          "Wider": "5.0dip"
        }
      },
      {
        "key": "widerButtonsSpace",
        "title": "Wider between-buttons space",
        "description": "Prevent adjacent button presses by increasing the horizontal spacing between buttons.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      },
      {
        "key": "changeTopButtons",
        "title": "Change top buttons",
        "description": "Change the icons at the top of the player.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Player components",
    "description": "Adds options to hide or change components related to the player.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "ResourcePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Player components",
    "description": "Adds options to hide or change components related to the video player.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Premium icon",
    "description": "Unlocks premium app icons.",
    "use": true,
    "dependencies": [],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Remove background playback restrictions",
    "description": "Removes restrictions on background playback, including for kids videos.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Remove background playback restrictions",
    "description": "Removes restrictions on background playback, including for music and kids videos.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Remove subreddit dialog",
    "description": "Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Remove viewer discretion dialog",
    "description": "Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Remove viewer discretion dialog",
    "description": "Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Restore old style library shelf",
    "description": "Adds an option to return the Library tab to the old style.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Return YouTube Dislike",
    "description": "Adds an option to show the dislike count of songs using the Return YouTube Dislike API.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Return YouTube Dislike",
    "description": "Adds an option to show the dislike count of videos using the Return YouTube Dislike API.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Return YouTube Username",
    "description": "Adds an option to replace YouTube handles with usernames in comments using YouTube Data API v3.",
    "use": false,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Return YouTube Username",
    "description": "Adds an option to replace YouTube handles with usernames in comments using YouTube Data API v3.",
    "use": false,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Sanitize sharing links",
    "description": "Adds an option to sanitize sharing links by removing tracking query parameters.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Sanitize sharing links",
    "description": "Adds an option to sanitize sharing links by removing tracking query parameters.",
    "use": true,
    "dependencies": [
      "Settings for Reddit"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": []
  },
  {
    "name": "Sanitize sharing links",
    "description": "Adds an option to sanitize sharing links by removing tracking query parameters.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Seekbar components",
    "description": "Adds options to hide or change components related to the seekbar.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Settings for Reddit",
    "description": "Applies mandatory patches to implement ReVanced Extended settings into the application.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.reddit.frontpage": [
        "2024.17.0",
        "2025.05.1",
        "2025.12.0"
      ]
    },
    "options": [
      {
        "key": "rvxSettingsLabel",
        "title": "RVX settings menu name",
        "description": "The name of the RVX settings menu.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX",
        "values": {
          "ReVanced Extended": "ReVanced Extended",
          "RVX": "RVX"
        }
      }
    ]
  },
  {
    "name": "Settings for YouTube",
    "description": "Applies mandatory patches to implement ReVanced Extended settings into the application.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "ResourcePatch",
      "ResourcePatch",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "insertPosition",
        "title": "Insert position",
        "description": "The settings menu name that the RVX settings menu should be above.",
        "required": true,
        "type": "kotlin.String",
        "default": "@string/about_key",
        "values": {
          "Parent settings": "@string/parent_tools_key",
          "General": "@string/general_key",
          "Account": "@string/account_switcher_key",
          "Data saving": "@string/data_saving_settings_key",
          "Autoplay": "@string/auto_play_key",
          "Video quality preferences": "@string/video_quality_settings_key",
          "Background": "@string/offline_key",
          "Watch on TV": "@string/pair_with_tv_key",
          "Manage all history": "@string/history_key",
          "Your data in YouTube": "@string/your_data_key",
          "Privacy": "@string/privacy_key",
          "History \u0026 privacy": "@string/privacy_key",
          "Try experimental new features": "@string/premium_early_access_browse_page_key",
          "Purchases and memberships": "@string/subscription_product_setting_key",
          "Billing \u0026 payments": "@string/billing_and_payment_key",
          "Billing and payments": "@string/billing_and_payment_key",
          "Notifications": "@string/notification_key",
          "Connected apps": "@string/connected_accounts_browse_page_key",
          "Live chat": "@string/live_chat_key",
          "Captions": "@string/captions_key",
          "Accessibility": "@string/accessibility_settings_key",
          "About": "@string/about_key"
        }
      },
      {
        "key": "rvxSettingsLabel",
        "title": "RVX settings label",
        "description": "The name of the RVX settings menu.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX",
        "values": {
          "ReVanced Extended": "ReVanced Extended",
          "RVX": "RVX"
        }
      }
    ]
  },
  {
    "name": "Settings for YouTube Music",
    "description": "Applies mandatory patches to implement ReVanced Extended settings into the application.",
    "use": true,
    "dependencies": [
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "rvxSettingsLabel",
        "title": "RVX settings label",
        "description": "The name of the RVX settings menu.",
        "required": true,
        "type": "kotlin.String",
        "default": "RVX",
        "values": {
          "ReVanced Extended": "ReVanced Extended",
          "RVX": "RVX"
        }
      }
    ]
  },
  {
    "name": "Shorts components",
    "description": "Adds options to hide or change components related to YouTube Shorts.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch",
      "ResourcePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Snack bar components",
    "description": "Adds options to hide or change components related to the snack bar.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "cornerRadius",
        "title": "Corner radius",
        "description": "Specify a corner radius for the snack bar.",
        "required": true,
        "type": "kotlin.String",
        "default": "8.0dip",
        "values": null
      },
      {
        "key": "applyCornerRadiusToPlaylistBottomBar",
        "title": "Apply corner radius to playlist bottom bar",
        "description": "Whether to apply the same corner radius to the bottom bar of the playlist as the snack bar.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      },
      {
        "key": "darkThemeBackgroundColor",
        "title": "Dark theme background color",
        "description": "Specify a background color for the snack bar. You can specify hex color (#AARRGGBB) or color resource reference.",
        "required": true,
        "type": "kotlin.String",
        "default": "@color/yt_black3",
        "values": {
          "YouTube Dark": "@color/yt_black3",
          "Amoled Black": "@android:color/black",
          "Catppuccin (Mocha)": "#FF181825",
          "Dark Pink": "#FF290025",
          "Dark Blue": "#FF001029",
          "Dark Green": "#FF002905",
          "Dark Yellow": "#FF282900",
          "Dark Orange": "#FF291800",
          "Dark Red": "#FF290000"
        }
      },
      {
        "key": "lightThemeBackgroundColor",
        "title": "Light theme background color",
        "description": "Specify a background color for the snack bar. You can specify hex color (#AARRGGBB) or color resource reference.",
        "required": true,
        "type": "kotlin.String",
        "default": "@color/yt_white3",
        "values": {
          "YouTube Light": "@color/yt_white3",
          "White": "@android:color/white",
          "Catppuccin (Latte)": "#FFE6E9EF",
          "Light Pink": "#FFFCCFF3",
          "Light Blue": "#FFD1E0FF",
          "Light Green": "#FFCCFFCC",
          "Light Yellow": "#FFFDFFCC",
          "Light Orange": "#FFFFE6CC",
          "Light Red": "#FFFFD6D6"
        }
      },
      {
        "key": "strokeColor",
        "title": "Stroke color",
        "description": "Specify a stroke color for the snack bar. You can specify hex color.",
        "required": true,
        "type": "kotlin.String",
        "default": "",
        "values": {
          "None": "",
          "Blue": "?attr/ytThemedBlue",
          "Chip": "?attr/ytChipBackground"
        }
      }
    ]
  },
  {
    "name": "SponsorBlock",
    "description": "Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as non-music sections.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "SponsorBlock",
    "description": "Adds options to enable and configure SponsorBlock, which can skip undesired video segments, such as sponsored content.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "BytecodePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "outlineIcon",
        "title": "Outline icons",
        "description": "Apply the outline icon.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Spoof Wi-Fi connection",
    "description": "Spoofs an existing Wi-Fi connection.",
    "use": false,
    "dependencies": [
      "BytecodePatch"
    ],
    "compatiblePackages": null,
    "options": []
  },
  {
    "name": "Spoof app version",
    "description": "Adds options to spoof the YouTube Music client version. This can be used to restore old UI elements and features.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.10.52"
      ]
    },
    "options": []
  },
  {
    "name": "Spoof app version",
    "description": "Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Spoof player parameter",
    "description": "Adds options to spoof player parameter to allow playback.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Spoof streaming data",
    "description": "Adds options to spoof the streaming data to allow playback.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "useIOSClient",
        "title": "Use iOS client",
        "description": "Add setting to set iOS client (Deprecated) as default client.",
        "required": false,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Swipe controls",
    "description": "Adds options for controlling volume and brightness with swiping, and whether to enter fullscreen when swiping down below the player.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Theme",
    "description": "Changes the app\u0027s themes to the values specified in patch options.",
    "use": true,
    "dependencies": [
      "ResourcePatch",
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "darkThemeBackgroundColor",
        "title": "Dark theme background color",
        "description": "Can be a hex color (#AARRGGBB) or a color resource reference.",
        "required": true,
        "type": "kotlin.String",
        "default": "@android:color/black",
        "values": {
          "Amoled Black": "@android:color/black",
          "Classic (Old YouTube)": "#FF212121",
          "Catppuccin (Mocha)": "#FF181825",
          "Dark Pink": "#FF290025",
          "Dark Blue": "#FF001029",
          "Dark Green": "#FF002905",
          "Dark Yellow": "#FF282900",
          "Dark Orange": "#FF291800",
          "Dark Red": "#FF290000"
        }
      },
      {
        "key": "lightThemeBackgroundColor",
        "title": "Light theme background color",
        "description": "Can be a hex color (#AARRGGBB) or a color resource reference.",
        "required": true,
        "type": "kotlin.String",
        "default": "@android:color/white",
        "values": {
          "White": "@android:color/white",
          "Catppuccin (Latte)": "#FFE6E9EF",
          "Light Pink": "#FFFCCFF3",
          "Light Blue": "#FFD1E0FF",
          "Light Green": "#FFCCFFCC",
          "Light Yellow": "#FFFDFFCC",
          "Light Orange": "#FFFFE6CC",
          "Light Red": "#FFFFD6D6"
        }
      }
    ]
  },
  {
    "name": "Toolbar components",
    "description": "Adds options to hide or change components located on the toolbar, such as the search bar, header, and toolbar buttons.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "ResourcePatch",
      "Settings for YouTube",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Translations for YouTube",
    "description": "Add translations or remove string resources.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "customTranslations",
        "title": "Custom translations",
        "description": "The path to the \u0027strings.xml\u0027 file.\nPlease note that applying the \u0027strings.xml\u0027 file will overwrite all existing translations.",
        "required": true,
        "type": "kotlin.String",
        "default": "",
        "values": null
      },
      {
        "key": "selectedTranslations",
        "title": "Translations to add",
        "description": "A list of translations to be added for the RVX settings, separated by commas.",
        "required": true,
        "type": "kotlin.String",
        "default": "ar, bg-rBG, de-rDE, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, pl-rPL, pt-rBR, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW",
        "values": null
      },
      {
        "key": "selectedStringResources",
        "title": "String resources to keep",
        "description": "A list of string resources to be kept, separated by commas.\nString resources not in the list will be removed from the app.\n\nDefault string resource, English, is not removed.",
        "required": true,
        "type": "kotlin.String",
        "default": "af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu",
        "values": null
      }
    ]
  },
  {
    "name": "Translations for YouTube Music",
    "description": "Add translations or remove string resources.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "customTranslations",
        "title": "Custom translations",
        "description": "The path to the \u0027strings.xml\u0027 file.\nPlease note that applying the \u0027strings.xml\u0027 file will overwrite all existing translations.",
        "required": true,
        "type": "kotlin.String",
        "default": "",
        "values": null
      },
      {
        "key": "selectedTranslations",
        "title": "Translations to add",
        "description": "A list of translations to be added for the RVX settings, separated by commas.",
        "required": true,
        "type": "kotlin.String",
        "default": "bg-rBG, bn, cs-rCZ, el-rGR, es-rES, fr-rFR, hu-rHU, id-rID, in, it-rIT, ja-rJP, ko-rKR, nl-rNL, pl-rPL, pt-rBR, ro-rRO, ru-rRU, tr-rTR, uk-rUA, vi-rVN, zh-rCN, zh-rTW",
        "values": null
      },
      {
        "key": "selectedStringResources",
        "title": "String resources to keep",
        "description": "A list of string resources to be kept, separated by commas.\nString resources not in the list will be removed from the app.\n\nDefault string resource, English, is not removed.",
        "required": true,
        "type": "kotlin.String",
        "default": "af, am, ar, ar-rXB, as, az, b+es+419, b+sr+Latn, be, bg, bn, bs, ca, cs, da, de, el, en-rAU, en-rCA, en-rGB, en-rIN, en-rXA, en-rXC, es, es-rUS, et, eu, fa, fi, fr, fr-rCA, gl, gu, hi, hr, hu, hy, id, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, no, or, pa, pl, pt, pt-rBR, pt-rPT, ro, ru, si, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh, zh-rCN, zh-rHK, zh-rTW, zu",
        "values": null
      }
    ]
  },
  {
    "name": "Video playback",
    "description": "Adds options to customize settings related to video playback, such as default video quality and playback speed.",
    "use": true,
    "dependencies": [
      "BytecodePatch",
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Video playback",
    "description": "Adds options to customize settings related to video playback, such as default video quality and playback speed.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "BytecodePatch",
      "ResourcePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  },
  {
    "name": "Visual preferences icons for YouTube",
    "description": "Adds icons to specific preferences in the settings.",
    "use": true,
    "dependencies": [
      "Settings for YouTube"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": [
      {
        "key": "settingsMenuIcon",
        "title": "RVX settings menu icon",
        "description": "The icon for the RVX settings menu.",
        "required": true,
        "type": "kotlin.String",
        "default": "extension",
        "values": {
          "Custom branding icon": "custom_branding_icon",
          "Extension": "extension",
          "Gear": "gear",
          "YT alt": "yt_alt",
          "ReVanced": "revanced",
          "ReVanced Colored": "revanced_colored"
        }
      },
      {
        "key": "applyToAll",
        "title": "Apply to all settings menu",
        "description": "Whether to apply Visual preferences icons to all settings menus.\n\nIf true: icons are applied to the parent PreferenceScreen of YouTube settings, the parent PreferenceScreen of RVX settings and the RVX sub-settings (if supported).\n\nIf false: icons are applied only to the parent PreferenceScreen of YouTube settings and RVX settings.",
        "required": true,
        "type": "kotlin.Boolean",
        "default": false,
        "values": null
      }
    ]
  },
  {
    "name": "Visual preferences icons for YouTube Music",
    "description": "Adds icons to specific preferences in the settings.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": [
      {
        "key": "settingsMenuIcon",
        "title": "RVX settings menu icon",
        "description": "The icon for the RVX settings menu.",
        "required": true,
        "type": "kotlin.String",
        "default": "extension",
        "values": {
          "Custom branding icon": "custom_branding_icon",
          "Extension": "extension",
          "Gear": "gear",
          "ReVanced": "revanced",
          "ReVanced Colored": "revanced_colored"
        }
      }
    ]
  },
  {
    "name": "Watch history",
    "description": "Adds an option to change the domain of the watch history or check its status.",
    "use": true,
    "dependencies": [
      "Settings for YouTube Music",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.apps.youtube.music": [
        "6.20.51",
        "6.29.59",
        "6.42.55",
        "6.51.53",
        "7.16.53",
        "7.25.53",
        "8.05.51",
        "8.12.53"
      ]
    },
    "options": []
  },
  {
    "name": "Watch history",
    "description": "Adds an option to change the domain of the watch history or check its status.",
    "use": true,
    "dependencies": [
      "Settings for YouTube",
      "BytecodePatch"
    ],
    "compatiblePackages": {
      "com.google.android.youtube": [
        "19.05.36",
        "19.16.39",
        "19.43.41",
        "19.44.39",
        "19.47.53",
        "20.03.43"
      ]
    },
    "options": []
  }
]