Table of Contents

Class TrackStreamUrl

Namespace
Nyra.Entities
Assembly
Nyra.dll

The direct stream URL of a track, as NodeLink's track stream route resolved it.

public sealed record TrackStreamUrl : IEquatable<TrackStreamUrl>
Inheritance
TrackStreamUrl
Implements
Inherited Members

Remarks

The server picks a default format when no itag was requested.

Properties

Format

The media container format, e.g. m4a or webm/opus.

[JsonPropertyName("format")]
[JsonInclude]
public string? Format { get; }

Property Value

string

HlsUrl

The HLS manifest URL NodeLink attached alongside a direct URL, the protocol is then http.

[JsonPropertyName("hlsUrl")]
[JsonInclude]
public string? HlsUrl { get; }

Property Value

string

Remarks

When the protocol is hls the manifest itself travels in Url and this member is null. Short-lived like Url, re-resolve instead of caching it.

Itag

The itag actually resolved, echoed by the YouTube direct path, null when the answer is SABR, HLS, a mirrored source or a non-YouTube source (which carry no itag at all).

[JsonPropertyName("itag")]
[JsonInclude]
public int? Itag { get; }

Property Value

int?

Protocol

The streaming protocol, e.g. http, sabr or hls.

[JsonPropertyName("protocol")]
[JsonInclude]
public string? Protocol { get; }

Property Value

string

Url

The direct playback URL for the track.

[JsonPropertyName("url")]
[JsonInclude]
public string? Url { get; }

Property Value

string

Remarks

Short-lived, re-resolve instead of caching it.