Skip to content

Commit

Permalink
Shared - Better Video Parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
nlogozzo committed Nov 16, 2023
1 parent 076baf2 commit 5be8267
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
19 changes: 14 additions & 5 deletions NickvisionTubeConverter.Shared/Models/MediaUrlInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ private void ParseFromPyDict(dynamic yt, PyDict mediaInfo, uint playlistPosition
{
ParseFormats(mediaInfo);
}
else if (VideoResolutions.Count == 0 && mediaInfo.HasKey("url") && !_tryVideo)
if (VideoResolutions.Count == 0 && mediaInfo.HasKey("url") && !_tryVideo)
{
var tempUrl = mediaInfo["url"].As<string>();
PyDict? tempInfo = yt.extract_info(tempUrl, download: false);
Expand All @@ -221,6 +221,15 @@ private void ParseFromPyDict(dynamic yt, PyDict mediaInfo, uint playlistPosition
_tryVideo = true;
}
}
if (VideoResolutions.Count == 0 && mediaInfo.HasKey("width") && mediaInfo.HasKey("height"))
{
VideoResolutions.Add(VideoResolution.Best);
var res = VideoResolution.Parse($"{mediaInfo["width"].As<int>}x{mediaInfo["height"].As<int>()}");
if(res != null)
{
VideoResolutions.Add(res);
}
}
if (VideoResolutions.Count == 0 && mediaInfo.HasKey("video_ext") && mediaInfo["video_ext"].As<string>() != "none")
{
VideoResolutions.Add(VideoResolution.Best);
Expand All @@ -232,13 +241,13 @@ private void ParseFromPyDict(dynamic yt, PyDict mediaInfo, uint playlistPosition
}
catch { }
var url = defaultUrl;
if (mediaInfo.HasKey("webpage_url"))
if (mediaInfo.HasKey("url"))
{
url = mediaInfo["webpage_url"].As<string>();
url = mediaInfo["url"].As<string>();
}
else if (mediaInfo.HasKey("url"))
else if (mediaInfo.HasKey("webpage_url"))
{
url = mediaInfo["url"].As<string>();
url = mediaInfo["webpage_url"].As<string>();
}
MediaList.Add(new MediaInfo(url, title, duration, playlistPosition));
}
Expand Down
6 changes: 5 additions & 1 deletion NickvisionTubeConverter.Shared/Models/VideoResolution.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,16 @@ static VideoResolution()
/// </summary>
/// <param name="s">The string to parse (Format: WidthxHeight)</param>
/// <returns>The parsed VideoResolution, null if error</returns>
public static VideoResolution? Parse(string s)
public static VideoResolution? Parse(string? s)
{
if(s == "Best" || s == _("Best"))
{
return Best;
}
if(string.IsNullOrWhiteSpace(s))
{
return null;
}
var split = s.Split("x");
if (split.Length == 2)
{
Expand Down

0 comments on commit 5be8267

Please sign in to comment.