2017-12-29 107 views
0

YouTube 다운로더를 만들고 있는데 수정 방법을 모르겠다는 문제가 있습니다. 기본적으로 다운로드 할 YouTube 동영상을 선택하고이를 대기열에 추가합니다. 다운로드가 끝나면 mp4 메타 데이터 태그를 작성하기 위해 MP4File .dll을 사용합니다.C# MP4 파일 .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 : \ 사용자 \ MyUserName 에다 문서 프로젝트 \ 비주얼 스튜디오 2015 \ \ \ MusicDownloader \ MusicDownloader 빈 \ 디버그 \ \에는 1TB \ (비욘세와 함께) [Official Audio] .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

답변 해 주셔서 감사합니다. –