2017-11-07 7 views
-1

私はユーチューブmp3コンバータを作成しようとしていますが、私はこのエラーを取得しています:URIが提供されたC#YouTubeのmp3コンバータ

」無効な要求は、要求URIは絶対URIでなければならないのいずれかまたはBASEADDRESSを設定する必要があります。 "

私はビデオライブラリ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は、動画を抽出するのをより困難にするために、時々エンコーディングを変更するという提案がありました。


open issueはVideoLibraryのgithubのでもあります。詳細はこちらをご覧ください。

httpsからhttpに変更がありますが、これは適切な方法では動作しないようです。

+0

ボトムでもっと良い解決策がありましたが、これは正解ではありません。 – 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.GetBytes()を取得することはできませんvideo.FullName作品を取得することです。 WriteAllBytes(source + video.FullName、new byte [] 1,2,3})を試してみました。 – MaximeSkillZ

1

解決済み。 VideoLibraryは古くなっています。代わりにNefarius-VideoLibraryを使用してください。

+0

それは実際に働いた! Thnx! – OverMars

関連する問題