{
  "common": {
    "about": {
      "repository_url": "https://repos.mateuszskoczek.com/MateuszSkoczek/VDownload",
      "developers": [
        {
          "name": "Mateusz Skoczek",
          "url": "https://repos.mateuszskoczek.com/MateuszSkoczek"
        }
      ],
      "translation": [
        {
          "code": "en-US",
          "translators": [
            {
              "name": "Mateusz Skoczek",
              "url": "https://repos.mateuszskoczek.com/MateuszSkoczek"
            }
          ]
        }
      ]
    },
    "filename_templates": [
      {
        "name": "id",
        "wildcard": "{id}"
      },
      {
        "name": "title",
        "wildcard": "{title}"
      },
      {
        "name": "author",
        "wildcard": "{author}"
      },
      {
        "name": "views",
        "wildcard": "{views}"
      },
      {
        "name": "source",
        "wildcard": "{source}"
      },
      {
        "name": "date",
        "wildcard": "{date:(.+)}"
      },
      {
        "name": "duration",
        "wildcard": "{duration:(.+)}"
      }
    ],
    "processing": {
      "muxers": [
        {
          "extension": "mp4",
          "video_codecs": [
            "h264"
          ],
          "audio_codecs": [
            "aac"
          ]
        },
        {
          "extension": "mkv",
          "video_codecs": [
            "h264"
          ],
          "audio_codecs": [
            "vorbis",
            "aac"
          ]
        },
        {
          "extension": "avi",
          "video_codecs": [
            "mpeg4",
            "h264"
          ],
          "audio_codecs": [
            "mp3"
          ]
        },
        {
          "extension": "mov",
          "video_codecs": [
            "h264"
          ],
          "audio_codecs": [
            "aac"
          ]
        },
        {
          "extension": "webm",
          "video_codecs": [
            "vp9",
            "vp8",
            "av1"
          ],
          "audio_codecs": [
            "libopus",
            "vorbis"
          ]
        },
        {
          "extension": "wmv",
          "video_codecs": [
            "msmpeg4v3",
            "h264"
          ],
          "audio_codecs": [
            "wmav2"
          ]
        },
        {
          "extension": "mp3",
          "audio_codecs": [
            "mp3"
          ]
        },
        {
          "extension": "flac",
          "audio_codecs": [
            "flac"
          ]
        },
        {
          "extension": "ogg",
          "audio_codecs": [
            "aac",
            "vorbis"
          ]
        },
        {
          "extension": "wav",
          "audio_codecs": [
            "aac",
            "pcm_s16le"
          ]
        }
      ],
      "processed_filename": "processed"
    },
    "path": {
      "appdata": {
        "directory_name": "VDownload",
        "authentication_file": "authentication.json",
        "settings_file": "settings.json",
        "data_file": "data.json",
        "subscriptions_file": "subscriptions.json"
      },
      "temp": {
        "tasks_directory": "tasks"
      }
    },
    "string_resources_assembly": "VDownload.Core.Strings"
  },
  "twitch": {
    "api": {
      "auth": {
        "token_schema": "OAuth",
        "client_id": "yukkqkwp61wsv3u1pya17crpyaa98y",
        "endpoints": {
          "validate": "https://id.twitch.tv/oauth2/validate"
        }
      },
      "helix": {
        "token_schema": "Bearer",
        "client_id": "yukkqkwp61wsv3u1pya17crpyaa98y",
        "endpoints": {
          "get_videos": "https://api.twitch.tv/helix/videos",
          "get_clips": "https://api.twitch.tv/helix/clips",
          "get_users": "https://api.twitch.tv/helix/users"
        }
      },
      "gql": {
        "client_id": "kd1unb4b3q4t58fwlpcbzcbnm76a8fp",
        "endpoint": "https://gql.twitch.tv/gql",
        "queries": {
          "get_video_token": {
            "operation_name": "PlaybackAccessToken_Template",
            "query": "query PlaybackAccessToken_Template($login: String!, $isLive: Boolean!, $vodID: ID!, $isVod: Boolean!, $playerType: String!) {  streamPlaybackAccessToken(channelName: $login, params: {platform: \"web\", playerBackend: \"mediaplayer\", playerType: $playerType}) @include(if: $isLive) {    value    signature    __typename  }  videoPlaybackAccessToken(id: $vodID, params: {platform: \"web\", playerBackend: \"mediaplayer\", playerType: $playerType}) @include(if: $isVod) {    value    signature    __typename  }}"
          },
          "get_clip_token": {
            "operation_name": "VideoAccessToken_Clip",
            "persisted_query_version": 1,
            "persisted_query_hash": "36b89d2507fce29e5ca551df756d27c1cfe079e2609642b4390aa4c35796eb11"
          }
        }
      },
      "usher": {
        "endpoints": {
          "get_video_playlist": "https://usher.ttvnw.net/vod/{0}.m3u8"
        }
      }
    },
    "search": {
      "general_regexes": [
        "twitch\\.tv"
      ],
      "vod": {
        "regexes": [
          "videos\\/(\\d+)"
        ],
        "thumbnail": {
          "width": 1920,
          "height": 1080
        },
        "live_thumbnail_url_regex": "https:\\/\\/vod-secure\\.twitch\\.tv\\/_404\\/404_processing_%{width}x%{height}\\.png",
        "stream_playlist_regex": "#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID=\"\\w+\",NAME=\"(?<id>.+)\",AUTOSELECT=\\w+,DEFAULT=\\w+\\n#EXT-X-STREAM-INF:BANDWIDTH=\\d+,CODECS=\"(?<video_codec>.+),(?<audio_codec>.+)\",RESOLUTION=(?<width>\\d+)x(?<height>\\d+),VIDEO=\".+\"(?:,FRAME-RATE=(?<framerate>\\d+.\\d+))?\n(?<url>.+)"
      },
      "clip": {
        "regexes": [
          "clip\\/(\\w+-\\w+)",
          "clips\\.twitch\\.tv\\/(\\w+-\\w+)"
        ]
      },
      "channel": {
        "regexes": [
          "twitch\\.tv\\/(\\w+)(?:\\/)?(?:\\/videos)?$"
        ],
        "url": "https://www.twitch.tv/{0}"
      }
    },
    "download": {
      "vod": {
        "chunk_regex": "#EXTINF:(?<duration>\\d+.\\d+),\\n(?<file>.+)",
        "file_name": "raw.ts"
      },
      "clip": {
        "file_name": "raw.mp4"
      }
    },
    "authentication": {
      "url": "https://id.twitch.tv/oauth2/authorize?client_id={0}&redirect_uri={1}&response_type={2}&scope={3}",
      "redirect_url": "https://www.vd.com",
      "redirect_url_regex": "^https:\\/\\/www.vd.com\\/#access_token=(\\w+)",
      "client_id": "yukkqkwp61wsv3u1pya17crpyaa98y",
      "response_type": "token",
      "scopes": [
        "user:read:subscriptions"
      ]
    }
  }
}