twitch vod downloading done

ffmpeg essentials

fix

Project reorganized

git lfs

ffmpeg removed

ffmpeg added
This commit is contained in:
2024-02-14 02:07:22 +01:00
Unverified
parent 91f9b645bd
commit e3ec5c3a48
264 changed files with 6239 additions and 4014 deletions

View File

@@ -0,0 +1,20 @@
using Microsoft.Extensions.Configuration;
using System.Text.Json.Serialization;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Api
{
[ConfigurationKeyName("auth")]
public Auth Auth { get; set; }
[ConfigurationKeyName("helix")]
public Helix Helix { get; set; }
[ConfigurationKeyName("gql")]
public Gql Gql { get; set; }
[ConfigurationKeyName("usher")]
public Usher Usher { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Auth
{
[ConfigurationKeyName("token_schema")]
public string TokenSchema { get; set; }
[ConfigurationKeyName("client_id")]
public string ClientId { get; set; }
[ConfigurationKeyName("endpoints")]
public EndpointsAuth Endpoints { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace VDownload.Sources.Twitch.Configuration.Models
{
public class Authentication
{
[ConfigurationKeyName("url")]
public string Url { get; set; }
[ConfigurationKeyName("redirect_url")]
public string RedirectUrl { get; set; }
[ConfigurationKeyName("redirect_url_regex")]
public string RedirectUrlRegex { get; set; }
[ConfigurationKeyName("client_id")]
public string ClientId { get; set; }
[ConfigurationKeyName("response_type")]
public string ResponseType { get; set; }
[ConfigurationKeyName("scopes")]
public List<string> Scopes { get; } = new List<string>();
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Download
{
[ConfigurationKeyName("vod")]
public Vod Vod { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class EndpointsAuth
{
[ConfigurationKeyName("validate")]
public string Validate { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models
{
public class EndpointsHelix
{
[ConfigurationKeyName("get_videos")]
public string GetVideos { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models
{
public class EndpointsUsher
{
[ConfigurationKeyName("get_video_playlist")]
public string GetVideoPlaylist { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class GetVideoToken
{
[ConfigurationKeyName("operation_name")]
public string OperationName { get; set; }
[ConfigurationKeyName("query")]
public string Query { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Gql
{
[ConfigurationKeyName("client_id")]
public string ClientId { get; set; }
[ConfigurationKeyName("endpoint")]
public string Endpoint { get; set; }
[ConfigurationKeyName("queries")]
public Queries Queries { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Helix
{
[ConfigurationKeyName("token_schema")]
public string TokenSchema { get; set; }
[ConfigurationKeyName("client_id")]
public string ClientId { get; set; }
[ConfigurationKeyName("endpoints")]
public EndpointsHelix Endpoints { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Queries
{
[ConfigurationKeyName("get_video_token")]
public GetVideoToken GetVideoToken { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Search
{
[ConfigurationKeyName("general_regexes")]
public List<string> GeneralRegexes { get; } = new List<string>();
[ConfigurationKeyName("vod")]
public Vod Vod { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Thumbnail
{
[ConfigurationKeyName("width")]
public int Width { get; set; }
[ConfigurationKeyName("height")]
public int Height { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Usher
{
[ConfigurationKeyName("endpoints")]
public EndpointsUsher Endpoints { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
using Microsoft.Extensions.Configuration;
namespace VDownload.Sources.Twitch.Configuration.Models{
public class Vod
{
[ConfigurationKeyName("regexes")]
public List<string> Regexes { get; } = new List<string>();
[ConfigurationKeyName("thumbnail")]
public Thumbnail Thumbnail { get; set; }
[ConfigurationKeyName("stream_playlist_regex")]
public string StreamPlaylistRegex { get; set; }
[ConfigurationKeyName("chunk_regex")]
public string ChunkRegex { get; set; }
[ConfigurationKeyName("file_name")]
public string FileName { get; set; }
}
}