Как программно извлечь аудио mp3 из видео на YouTube? - PullRequest
5 голосов
/ 13 июня 2010

Есть ли у кого-нибудь пример asp.net C # кода для извлечения аудио из видео ссылки на YouTube и сохранения его в виде mp3 файла.Кто-то порекомендовал использовать wget и ffmpeg, которые я установил и пытаюсь обработать команду, но получаю исключение ниже.Пример кода приведен ниже.

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "C:\\Program Files\\GnuWin32\\bin\\wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3";
proc.Start();

Ответы [ 3 ]

3 голосов
/ 13 июня 2010

Вы видите «файл не найден», потому что вы не указываете правильное имя файла, то есть:

"C:\\Program Files\\GnuWin32\\bin\\wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3"

Выше не имя файла, это имя файла плюс некоторые аргументы, то естьзатем передается по каналу к другому исполняемому файлу.

Поскольку вы пытаетесь запустить здесь два исполняемых файла (wget и ffmpeg), подходом здесь будет написать скрипт (например, пакетный файл), который оборачивает эти два исполняемых вызова, а затемвыполнить скрипт и передать ему аргумент url.

3 голосов
/ 13 июня 2010

Вы должны использовать WebClient класс для загрузки файла и использовать ffmpeg-sharp для его перекодирования.

0 голосов
/ 13 июня 2010

Метод Process.Start (string) предназначен для запуска процесса без аргументов. Поэтому, как говорится в chibacity, вы получаете исключение, потому что вся строка «C: \ Program Files \ GnuWin32 \ bin \ wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3» обрабатывается как имя файла для выполнения , Чтобы запустить процесс с аргументами, используйте метод Process.Start (string, string): http://msdn.microsoft.com/en-us/library/aa326952%28v=VS.71%29.aspx.

...