Files
VDownload/VDownload/configuration.json

193 lines
5.3 KiB
JSON

{
"common": {
"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"
},
"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"
]
}
}
}