@page "/Video/{VideoId}" @using Manager.App.Services.System @inject ISnackbar Snackbar @inject ClientService ClientService @inject CacheService Cache @if (!_loading && _video != null) { @{ var thumbnailUrl = _video.Thumbnails.OrderByDescending(t => t.Width).FirstOrDefault()?.Url; } @if (!string.IsNullOrWhiteSpace(thumbnailUrl)) { } @_video.Title @_video.Description @* Info *@ Video ID: @_video.VideoId Title: @_video.Title Description: @_video.Description HashTags: @foreach (var hashtag in _video.HashTags) { @hashtag } View count: @_video.ViewCount Like count: @_video.LikeCount Channel ID: @_video.ChannelId Author: @_video.Author Playability status: @_video.PlayabilityStatus Length seconds: @_video.LengthSeconds Keywords: @foreach (var keyword in _video.Keywords) { @keyword } Publish date: @_video.PublishDate Upload date: @_video.UploadDate Category: @_video.Category @* Boolean values *@ Is owner viewing: @_video.IsOwnerViewing Allow rating: @_video.AllowRating Is crawlable: @_video.IsCrawlable Is private: @_video.IsPrivate Is unplugged corpus: @_video.IsUnpluggedCorpus Is live: @_video.IsLive Is family save: @_video.IsFamilySave Is unlisted: @_video.IsUnlisted Has Ypc metadata: @_video.HasYpcMetadata Is shorts eligible: @_video.IsShortsEligible @if (_video.StreamingData == null) { No streaming data available! } else { Adaptive Formats Id Mime type Bitrate Resolution Last modified (UNIX epoch) Quality FPS @context.Itag @context.MimeType @context.Bitrate @($"{context.Width}x{context.Height}") @context.LastModified @context.Quality @context.Fps Formats Id Mime type Bitrate Resolution Last modified (UNIX epoch) Quality FPS @context.Itag @context.MimeType @context.Bitrate @($"{context.Width}x{context.Height}") @context.LastModified @context.Quality @context.Fps } @if (_video.PlayerConfig == null) { No player config available! } else { Audio loudness DB: @_video.PlayerConfig.AudioLoudnessDb Audio perceptual loudness DB: @_video.PlayerConfig.AudioPerceptualLoudnessDb Audio enable per format loudness: @_video.PlayerConfig.AudioLoudnessDb Max bitrate: @_video.PlayerConfig.MaxBitrate Max read ahead time MS: @_video.PlayerConfig.MaxReadAheadMediaTimeMs Min read ahead time MS: @_video.PlayerConfig.MinReadAheadMediaTimeMs Read ahead growth rate MS: @_video.PlayerConfig.ReadAheadGrowthRateMs } }