我正在制作一个YouTube下载器,我遇到了一个我不明白如何修复的问题。基本上,您可以选择要下载的YouTube视频,并将其添加到队列中。下载后我使用MP4File .dll编写mp4元数据标签。
大多数YouTube下载和元数据标签都有效但我认为当YouTube标题包含符号时,它不会更改元数据标签,而只会崩溃。
我调试了程序并在此方法中发现了问题:
public static void UpdateMP4Details(string path, string title, string imagePreview)
{
try
{
MP4File file = MP4File.Open(@path); // Something wrong with the path
file.Tags.Title = title; // Crashes here
file.Tags.Artist = "Youtube";
file.Tags.Artwork = DownloadImageFromUrl(imagePreview);
file.Save();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "\n\nUnable to save video details", title);
}
}
我得到的错误是:'对象引用未设置为对象的实例'我相信这是因为它无法找到符号所在的路径。
有时错误是:'必须指定有效的文件名' 路径:
“C:\ Users \ MyUserName \ Documents \ Visual Studio 2015 \ Projects \ MusicDownloader \ MusicDownloader \ bin \ Debug \ TByte \ User1 \ Videos \ General \ Ed Sheeran - Perfect Duet(withBeyoncé)[Official Audio] .mp4 “
这是一个非常困难的问题,我尝试了许多替代方案,但我相信这与路径中的符号有关,因为所有其他没有符号的YouTube视频都可以使用。
有没有办法解决这个问题?有人可以帮忙吗?
答案 0 :(得分:0)
Windows应该对该文件名中的字符没有问题,但可能是MP4File库。
是否可以下载文件,该文件名首先没有引起问题?也许使用像youtube视频ID而不是视频标题之类的东西,因为这是一个仅限ASCII的字符串。