2017-05-19 12 views
1

TyrrzのパッケージYoutubeExplodeを使用して.NETでYouTube動画を抽出しようとしています。私のプログラムは昨日正常に実行されていたので、フラッシュとhtml5ビデオの両方のオーディオとビデオストリームをダウンロードすることができました。しかし、今日、私はパッケージを使用してHTML5のビデオを抽出しようとすると、それは誤りResponse status code does not indicate success: 403 (Forbidden).で終了し、私はビデオストリームを取得するために使用しているコードは次のとおりです。C#パッケージTyrrrz/YoutubeExplodeがYouTube html5ビデオではエラー403を返しますが、フラッシュビデオでは表示されません

var youtube = new YoutubeClient(); 
var video = await youtube.GetVideoInfoAsync("GemKqzILV4w"); //YouTube ID for random video 
var stream = video.MixedStreams.OrderBy(s => s.VideoQuality).Last(); 
await youtube.DownloadMediaStreamAsync(stream, "C:\\Videos\\vid.mp4"); 

私の理論は、YouTubeが私の要求をブロックしていることですどういうわけかhtml動画のために私はこの問題をどのように修正できるかわかりません。パッケージにYoutubeClient()を含むヘッダーを送信する方法はありますか?他の誰かがこのパッケージを使っている経験はありますか?私はYoutubeExtractorとlibvideoを試してきましたが、このタイプのC#パッケージは他のすべてのC#パッケージを使っていましたが、これまでのところ、YoutubeExplodeはhtml5ビデオで動作する唯一のものです。この問題に対する助けや実現可能な解決策は非常に感謝しています。

+0

YoutubeExplodeはどのウェブサイトからもビデオをキャプチャしますか? Youtubeのみの場合、FLVファイル(Flash)とWebM(Google)やMP4(MPEG)などの他の形式はどのように区別されますか?つまり、MP4ではなくFLVを与えるべきであるということです。また、YoutubeはほとんどがMP4、WebM、M4Aファイルを保持しているので、どのように/どこからこれらのFLVファイルを入手するのかわかりません。 **正しいことを尋ねていることを確認してください** –

+0

'(s => s.VideoQuality).Last();'の値をチェックする方法はありますか?あなたのリンクの最大ビデオサイズは** 360p **です。高解像度が見つからない理由は?悪化すると悪化します...ビデオページのHTMLを読み込む( 'String'として)独自のコードを書いてそこから直接リンクを抽出してください。 '' adaptive_fmts ''を探して、そこからHTMLエンティティの解析とテキストのUTFエンコーディングの後に直接リンクを得ることができます(例えば'%26'は最後の直接リンクなどで '&'になります) –

答えて

0

まず、github問題追跡ツールに関するプロジェクト固有の質問をする必要があります。私は通常、同じ日にすべての問題に対応します。

第2に、実際に「html5動画は再生できますが、動画は再生できません」という意味ですか?私の知る限りでは、Youtubeはもはやフラッシュビデオを提供しません。通常、403エラーコードは、ストリームの署名が(正しく)解読されなかったことを意味します。この記事を書いている時点で、すべてのテストが合格しており、デモアプリケーションを使用してビデオ情報を適切に取得し、投稿内のビデオからストリームをダウンロードできます。 enter image description here Youtubeは地域固有の応答を提供しているため、何らかの理由で応答した応答が正しく処理されなかった可能性があります。 github issue trackerで問題を作り上げて、問題の可能性について話し合って、この潜在的なバグを修正できますか?

関連する問題