Use stream id in streaming url
This commit is contained in:
@ -112,13 +112,30 @@ public class PlaylistController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{pubkey}.m3u8")]
|
[HttpGet("{pubkey}.m3u8")]
|
||||||
public async Task CreateMultiBitrate([FromRoute] string pubkey)
|
public async Task<IActionResult> GetCurrentStreamRedirect([FromRoute] string pubkey)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var streamManager = await _streamManagerFactory.ForCurrentStream(pubkey);
|
var streamManager = await _streamManagerFactory.ForCurrentStream(pubkey);
|
||||||
|
|
||||||
var userStream = streamManager.GetStream();
|
var userStream = streamManager.GetStream();
|
||||||
|
return Redirect($"{userStream.Id}.m3u8");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Failed to get stream for {pubkey} {message}", pubkey, ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("{id:guid}.m3u8")]
|
||||||
|
public async Task CreateMultiBitrate([FromRoute] Guid id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var streamManager = await _streamManagerFactory.ForStream(id);
|
||||||
|
var userStream = streamManager.GetStream();
|
||||||
|
|
||||||
var hlsCtx = await GetHlsCtx(userStream);
|
var hlsCtx = await GetHlsCtx(userStream);
|
||||||
if (string.IsNullOrEmpty(hlsCtx))
|
if (string.IsNullOrEmpty(hlsCtx))
|
||||||
{
|
{
|
||||||
@ -156,7 +173,7 @@ public class PlaylistController : Controller
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Failed to get stream for {pubkey} {message}", pubkey, ex.Message);
|
_logger.LogWarning("Failed to get stream for {id} {message}", id, ex.Message);
|
||||||
Response.StatusCode = 404;
|
Response.StatusCode = 404;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class StreamEventBuilder
|
|||||||
{
|
{
|
||||||
var viewers = _viewCounter.Current(stream.Id);
|
var viewers = _viewCounter.Current(stream.Id);
|
||||||
var starts = new DateTimeOffset(stream.Starts).ToUnixTimeSeconds();
|
var starts = new DateTimeOffset(stream.Starts).ToUnixTimeSeconds();
|
||||||
tags.Add(new("streaming", new Uri(_config.DataHost, $"{user.PubKey}.m3u8").ToString()));
|
tags.Add(new("streaming", new Uri(_config.DataHost, $"{stream.Id}.m3u8").ToString()));
|
||||||
tags.Add(new("starts", starts.ToString()));
|
tags.Add(new("starts", starts.ToString()));
|
||||||
tags.Add(new("current_participants", viewers.ToString()));
|
tags.Add(new("current_participants", viewers.ToString()));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user