2017-12-29 65 views
0

私はYouTubeダウンローダーを作っていますが、修正方法がわからないという問題が発生しました。基本的には、ダウンロードするYouTubeビデオを選択し、それをキューに追加します。それらがダウンロードされた後、私はmp4メタデータタグを書き込むためにMP4File .dllを使用しました。C#MP4File .mp4 metadata tag editing

ほとんどの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:プロジェクト\ MusicDownloader \ MusicDownloader \ binに\デバッグ\ Visual Studioの2015 \ \ Users \ユーザーMYUSERNAME \ドキュメント\テラバイト\ (ビヨンセ付き)[公式オーディオ] .mp4 "

これは非常に問題に直面しています。私は多くの選択肢を試しましたが、パス内のシンボルと関係していると思います。シンボルのない他のすべてのYouTube動画は機能します。

これには方法がありますか?誰でも助けてくれますか?

+0

[NullReferenceExceptionとは何ですか?それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) – HaveSpacesuit

答えて

0

Windowsはそのファイル名の文字に問題はありませんが、おそらくMP4Fileライブラリは問題ありません。

最初に問題の原因ではなかったファイル名でファイルをダウンロードすることは可能でしょうか?おそらく、ビデオのタイトルの代わりにYouTubeのビデオIDのようなものを使用するのは、それがASCIIのみの文字列であるためです。

+0

答えをありがとう、私は見てみましょう –