[
  {
    "code": "No authentication/private",
    "description": "Authenticate using&nbsp;<span onclick=\"$('#authModal').modal('show');\" class=\"openAuth\">cookies</span>&nbsp;and try again.",
    "trigger": [
      "ERROR: Private video",
      "This video is private",
      "Please sign in or sign up to view this video.",
      "ERROR: This video is only available for registered users"
    ]
  },
  {
    "code": "Members-only content",
    "description": "Authenticate using&nbsp;<span onclick=\"$('#authModal').modal('show');\" class=\"openAuth\">cookies</span>&nbsp;and try again.",
    "trigger": [
      "ERROR: Join this channel to get access to members-only content",
      "This video is available to this channel's members on level"
    ]
  },
  {
    "code": "Blocked in country",
    "description": "The uploader has blocked this video in your country.",
    "trigger": " The uploader has not made this video available in your country"
  },
  {
    "code": "Blocked",
    "description": "This video is blocked for an unspecified reason.",
    "trigger": " The video is blocked"
  },
  {
    "code": "Channel unavailable",
    "description": "This channel is currently not available.",
    "trigger": "This channel is not available"
  },
  {
    "code": "No connection could be made",
    "description": "The host or your internet/proxy connection is down.",
    "trigger": "getaddrinfo failed"
  },
  {
    "code": "URL not supported",
    "description": "This URL is currently not supported by YTDL.",
    "trigger": [
      "is not a valid URL",
      "Unsupported URL"
    ]
  },
  {
    "code": "URL not found",
    "description": "This is an incorrect or non-existing URL.",
    "trigger": "[Errno 11001]"
  },
  {
    "code": "Private or non-existent playlist",
    "description": "This playlist does not exist or is&nbsp;<span onclick=\"$('#authModal').modal('show');\" class=\"openAuth\">private</span>.",
    "trigger": "ERROR: The playlist does not exist"
  },
  {
    "code": "Age restricted video",
    "description": "To download this video log-in using &nbsp;<span onclick=\"$('#authModal').modal('show');\" class=\"openAuth\">cookies</span>.",
    "trigger": [
      "ERROR: Sign in to confirm your age",
      "Verify your age"
    ]
  },
  {
    "code": "Embed-only video",
    "description": "Try using the URL of the embed page.",
    "trigger": "ERROR: Cannot download embed-only video without embedding URL"
  },
  {
    "code": "Possible broken extractor (404)",
    "description": "YTDL isn't working, please wait for an update.",
    "trigger": "HTTP Error 404"
  },
  {
    "code": "Private or removed video",
    "description": "This video can not be extracted.",
    "trigger": "metadata.formats is not iterable"
  },
  {
    "code": "ffmpeg not found",
    "description": "Format merging requires ffmpeg.",
    "trigger": "ffmpeg or avconv not found"
  },
  {
    "code": "ffmpeg not found",
    "description": "Transcoding to mp3 or mp4 requires ffmpeg.",
    "trigger": [
      "ffmpeg or avconv could not be found",
      "ffprobe/avprobe and ffmpeg/avconv not found"
    ]
  },
  {
    "code": "Incomplete video ID",
    "description": "The URL you entered is incomplete.",
    "trigger": "Incomplete YouTube ID"
  },
  {
    "code": "Too many requests (429)",
    "description": "You are being ratelimited by the service.",
    "trigger": "HTTP Error 429"
  },
  {
    "code": "Unable to extract initial data",
    "description": "Please do try again in a moment.",
    "trigger": [
      "ERROR: Unable to extract yt initial data",
      "Did not get any data blocks"
      ]
  },
  {
    "code": "No write permission",
    "description": "No write permission in download folder.",
    "trigger": "[Errno 95]"
  },
  {
    "code": "Blocked by firewall/program",
    "description": "Check your firewall and or internet settings.",
    "trigger": "[WinError 10013]"
  },
  {
    "code": "Permission denied",
    "description": "Unable to write files to your download location.",
    "trigger": "[Errno 13]"
  },
  {
    "code": "SSL verification failed",
    "description": "Disable the 'Validate HTTPS certificates' setting.",
    "trigger": "<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed"
  },
  {
    "code": "Max fragment retries reached",
    "description": "The service did not respond in time.",
    "trigger": [
      "giving up after 10 fragment retries",
      "giving up after 10 retries"
    ]
  },
  {
    "code": "Connection timed out",
    "description": "Please try again in a moment.",
    "trigger": [
      "EOF occurred in violation of protocol",
      "[Errno 60]"
    ]
  },
  {
    "code": "No connection could be made",
    "description": "Check your proxy and internet connection.",
    "trigger": "[WinError 10060]"
  },
  {
    "code": "Connection refused",
    "description": "The service or your internet might be down.",
    "trigger": "[WinError 10061]"
  },
  {
    "code": "Connection reset",
    "description": "The connection was closed by the remote host.",
    "trigger": "[WinError 10054]"
  },
  {
    "code": "No space left on device",
    "description": "You have no space left on your drive.",
    "trigger": "[Errno 28]"
  },
  {
    "code": "This video is DRM protected",
    "description": "Log in or use a proxy to download this video.",
    "trigger": "This video is DRM protected"
  },
  {
    "code": "File in use by another process",
    "description": "Don't open the file while it's downloading.",
    "trigger": "[WinError 32]"
  },
  {
    "code": "HTTP error 403",
    "description": "You may be ratelimited, try clearing the cache.",
    "trigger": [
      "HTTP Error 403",
      "Error 403"
    ]
  },
  {
    "code": "HTTP error 400",
    "description": "Bad URL or broken extractor.",
    "trigger": "HTTP Error 400"
  },
  {
    "code": "HTTP error 405",
    "description": "Bad URL or broken extractor.",
    "trigger": "HTTP Error 405"
  },
  {
    "code": "No video found",
    "description": "This tweet does not contain a video.",
    "trigger": "There's no video in this tweet"
  },
  {
    "code": "Binaries missing/corrupted",
    "description": "Please restart the app and disable antivirus.",
    "trigger": [
      "Command failed with ENOENT: resources\\app.asar.unpacked\\binaries\\youtube-dl.exe",
      "Command failed with ENOENT: binaries/youtube-dl.exe",
      "is not recognized as an internal or external command"
    ]
  },
  {
    "code": "Missing dependency",
    "description": "Please install <a href=\"https://github.com/jely2002/youtube-dl-gui#how-to-use\" target=\"_blank\"> Microsoft Visual C++ 2010</a>",
    "trigger": "3221225781"
  },
  {
    "code": "Video not found",
    "description": "This video does not exist.",
    "trigger": [
      "Video has not been found",
      "does not exist"
    ]
  },
  {
    "code": "Geo-locked content",
    "description": "Try using a vpn or proxy.",
    "trigger": [
      "bbc.co.uk returned error: geolocation",
      "This video is not available from your location due to geo restriction"
    ]
  },
  {
    "code": "Access forbidden",
    "description": "Not enough permissions to access the download URL.",
    "trigger": "Access to this resource is forbidden by access policy"
  },
  {
    "code": "Unknown URL type",
    "description": "An invalid url scheme was used, try using http/https.",
    "trigger": "urlopen error unknown url type"
  },
  {
    "code": "Download file not found",
    "description": "The download file was deleted/moved while it wasn't done yet.",
    "trigger": "[WinError 2]"
  },
  {
    "code": "Not premiered yet",
    "description": "This video hasn't premiered yet.",
    "trigger": "Premieres in"
  },
  {
    "code": "Copyright claimed",
    "description": "This video was blocked because of a copyright claim.",
    "trigger": "who has blocked it on copyright grounds"
  },
  {
    "code": "Cannot allocate memory",
    "description": "FFmpeg has run out of memory, converting failed.",
    "trigger": "Cannot allocate memory"
  },
  {
    "code": "Livestream not started yet",
    "description": "Wait for the livestream to start.",
    "trigger": "This live event will begin in a few moments."
  },
  {
    "code": "Thumbnail embedding not supported",
    "description": "Only mp3 and m4a/mp4 are supported for thumbnail embedding for now.",
    "trigger": "ERROR: Only mp3 and m4a/mp4 are supported for thumbnail embedding for now."
  },
  {
    "code": "SponsorBlock API unreachable",
    "description": "Unable to communicate with SponsorBlock API, please try again.",
    "trigger": "ERROR: Unable to communicate with SponsorBlock API"
  }
]
