2017-11-07 1 views
-1

나는 유튜브 MP3 변환기를 만들려고하고 있어요하지만 난이 오류를 얻고있다 :. URI이 제공되었다C# 유튜브 MP3 변환기

"잘못된 요청이 요청 URI가 절대 URI 여야 또는 기본 주소를 설정해야합니다. "

나는 비디오 라이브러리MediaToolkit을 사용하고 있습니다.

문제는 "video.getBytes()"

코드 :

YouTube youtube = YouTube.Default; 
Video video = youtube.GetVideo(url_textBox.Text); 
string source = @"C:\Users\MyComputer\Downloads"; 

System.IO.File.WriteAllBytes(source + video.FullName, video.GetBytes()); // here is the problem 

var inputFile = new MediaFile { Filename = source + video.FullName }; 
var outputFile = new MediaFile { Filename = $"{source + video.FullName}.mp3" }; 

using (var engine = new Engine()) 
{ 
    engine.GetMetadata(inputFile); 

    engine.Convert(inputFile, outputFile); 
} 
+0

그래서 어떤 URI를 사용하고 있습니까? – jmoerdyk

+0

+ jmeordyk https://www.youtube.com/watch?v=TW9d8vYrVFQ with https – MaximeSkillZ

답변

0

german forum에서이 동작에 대해 뭔가를 발견했습니다.

짧은 요약 :

기술 된 문제는 정지 상태에서 코드 (당신 같은)이 잠시 동안과 이후에 작업 한 것이 었습니다.
하나는 다른 동영상 URL로 시도해보십시오.
한 가지 제안은 Youtube가 비디오를 추출하기가 더 어려워 지도록 때때로 인코딩을 변경한다는 것입니다.


또한 VideoLibrary의 GitHub의에서 open issue 있습니다. 더 자세한 정보를 원하면 그곳을 살펴보십시오.

https에서 http으로 변경하는 것이 좋습니다. 그러나 이것은 올바른 방식으로 작동하지 않는 것 같습니다.

+0

bottm에서 훨씬 더 좋은 해결책인데, 정답이 아닙니다. – OverMars

0

당신은 프로토콜 (HTTPS 또는 이와 유사한 것)을 포함한 전체 URI를 지정해야합니다. 예 : "https://www.youtube.com/watch?v=NVEmpild9Rc"

입력란에 무엇을 입력하고 있습니까?

+0

계속 https://www.youtube.com/watch?v=TW9d8vYrVFQ with https – MaximeSkillZ

+0

과 같은 오류가 발생합니다. Windows 파일 이름이 문제입니까? 원본 문자열 끝에 백 슬래시가 없습니다. "C : \ Users \ MyComputer \ Downloads \"여야합니까? –

+1

문제는 video.FullName은 작동하지만 video.GetBytes()를 가져올 수 없다는 것입니다. WriteAllBytes (source + video.FullName, new byte [] {1,2,3})를 시도해 보았습니다. – MaximeSkillZ

1

해결되었습니다. VideoLibrary는 구식입니다. 대신 Nefarius-VideoLibrary를 사용하십시오.

+0

실제로 작동했습니다! Thnx! – OverMars