From 3998db8ea12f725ea589d8682dbeb0fb1a266370 Mon Sep 17 00:00:00 2001 From: Kieran Date: Mon, 11 Dec 2023 13:18:50 +0000 Subject: [PATCH] Use source playlist --- NostrStreamer/Services/Clips/ClipGenerator.cs | 10 ++++++---- NostrStreamer/Services/Clips/S3ClipService.cs | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/NostrStreamer/Services/Clips/ClipGenerator.cs b/NostrStreamer/Services/Clips/ClipGenerator.cs index b2704cf..57084bf 100644 --- a/NostrStreamer/Services/Clips/ClipGenerator.cs +++ b/NostrStreamer/Services/Clips/ClipGenerator.cs @@ -1,5 +1,6 @@ using System.Text.RegularExpressions; using FFMpegCore; +using NostrStreamer.Database; namespace NostrStreamer.Services.Clips; @@ -30,12 +31,13 @@ public class ClipGenerator return path; } - public async Task> GetClipSegments(Guid id) + public async Task> GetClipSegments(UserStream stream) { var ret = new List(); - var playlist = new Uri(_config.DataHost, $"stream/{id}.m3u8"); + var path = $"/{stream.Endpoint.App}/source/{stream.User.StreamKey}.m3u8"; + var ub = new Uri(_config.SrsHttpHost, path); - var rsp = await _client.GetStreamAsync(playlist); + var rsp = await _client.GetStreamAsync(ub); using var sr = new StreamReader(rsp); while (await sr.ReadLineAsync() is { } line) { @@ -44,7 +46,7 @@ public class ClipGenerator var trackPath = await sr.ReadLineAsync(); var seg = Regex.Match(trackPath!, @"-(\d+)\.ts"); var idx = int.Parse(seg.Groups[1].Value); - var clipSeg = new ClipSegment(id, idx); + var clipSeg = new ClipSegment(stream.Id, idx); var outPath = clipSeg.GetPath(); if (!File.Exists(outPath)) { diff --git a/NostrStreamer/Services/Clips/S3ClipService.cs b/NostrStreamer/Services/Clips/S3ClipService.cs index 04919a1..1f2fc26 100644 --- a/NostrStreamer/Services/Clips/S3ClipService.cs +++ b/NostrStreamer/Services/Clips/S3ClipService.cs @@ -32,7 +32,7 @@ public class S3ClipService : IClipService return default; } - return await _generator.GetClipSegments(streamId); + return await _generator.GetClipSegments(stream); } public async Task MakeClip(string takenBy, List segments, float start, float length)