diff --git a/src/src/StevesBot.Webhook/Program.cs b/src/src/StevesBot.Webhook/Program.cs index 0bf22d4..29155f0 100644 --- a/src/src/StevesBot.Webhook/Program.cs +++ b/src/src/StevesBot.Webhook/Program.cs @@ -85,7 +85,7 @@ app.MapPost(ytCallback, static async (HttpContext context, [FromServices] ILogge return Results.NotFound(); } - if (video.IsStream is false) + if (video.IsLiveStream is false) { logger.LogInformation("Video ID {VideoId} is not a live stream.", videoId); return Results.Ok(); diff --git a/src/src/StevesBot.Webhook/YouTube/Data/YouTubeSnippet.cs b/src/src/StevesBot.Webhook/YouTube/Data/YouTubeSnippet.cs new file mode 100644 index 0000000..7b0105f --- /dev/null +++ b/src/src/StevesBot.Webhook/YouTube/Data/YouTubeSnippet.cs @@ -0,0 +1,7 @@ +namespace StevesBot.Webhook.YouTube.Data; + +internal sealed record YouTubeSnippet +{ + [JsonPropertyName("liveBroadcastContent")] + public string LiveBroadcastContent { get; init; } = string.Empty; +} \ No newline at end of file diff --git a/src/src/StevesBot.Webhook/YouTube/Data/YouTubeVideo.cs b/src/src/StevesBot.Webhook/YouTube/Data/YouTubeVideo.cs index 10ed6c9..6f68867 100644 --- a/src/src/StevesBot.Webhook/YouTube/Data/YouTubeVideo.cs +++ b/src/src/StevesBot.Webhook/YouTube/Data/YouTubeVideo.cs @@ -8,5 +8,8 @@ internal sealed record YouTubeVideo [JsonPropertyName("liveStreamingDetails")] public YouTubeLiveStreamingDetails? LiveStreamingDetails { get; init; } - public bool IsStream => LiveStreamingDetails is not null; + [JsonPropertyName("snippet")] + public YouTubeSnippet Snippet { get; init; } = new(); + + public bool IsLiveStream => LiveStreamingDetails is not null && Snippet.LiveBroadcastContent is "live"; } \ No newline at end of file