Code/MediaQueueItem.cs
namespace Bimp;
/// <summary>
/// A resolved piece of media, ready to be played. Stored in the networked queue,
/// so it only contains simple serializable properties.
/// </summary>
public sealed class MediaQueueItem
{
/// <summary>
/// The url the user entered (YouTube page, direct file, ...).
/// </summary>
public string Url { get; set; }
/// <summary>
/// The url clients actually hand to the engine's VideoPlayer.
/// </summary>
public string PlayUrl { get; set; }
public string Title { get; set; }
/// <summary>
/// Length in seconds, 0 if unknown.
/// </summary>
public float Duration { get; set; }
public bool IsLive { get; set; }
public bool AudioOnly { get; set; }
/// <summary>
/// The stream can't byte-seek, seeking is done by re-requesting it with a start offset (resolver streams).
/// </summary>
public bool SeekByReload { get; set; }
/// <summary>
/// Display name of whoever requested this.
/// </summary>
public string RequestedBy { get; set; }
/// <summary>
/// Video heights the resolver can serve, comma separated, highest first ("1080,720,480"). Empty = no choice.
/// </summary>
public string Qualities { get; set; }
/// <summary>
/// Audio tracks the resolver can serve (JSON list of <see cref="MediaAudioTrack"/>). Empty = no choice.
/// </summary>
public string AudioTracks { get; set; }
}