Как часть моей программы, я загружаю видео с YouTube (или, желательно, аудио), чтобы использовать аудио в качестве mp3. Я сам посмотрел на написание кода, но потом увидел YouTube-dl и подумал, что я буду запускать его как часть программы, используя Runtime. Это все работает. Тем не менее, моя проблема заключается в установке YouTube-DL, если он не в настоящее время на компьютере с помощью программы. Я попытался выполнить команды, которые обычно используются, но это не похоже на работу. Любые идеи? С другой стороны, кто-нибудь может объяснить, почему нельзя использовать простой буфер streamstreaminput / filestreamoutput? Я написал их для загрузки PDF-файлов, которые находятся в сети, и я предполагаю, что это связано с более безопасной системой YouTube, но мне просто интересно узнать почему.
Мой код:
publi c Boolean ServiceYouTubeDdl {
public void runCommand() throws IOException {
activateCommand("sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl");
activateCommand("sudo chmod a+x /usr/local/bin/youtube-dl");
activateCommand("hash -r");
return true}
public String activateCommand(String cmd) throws IOException {
java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
}
PS возвращает логическое значение для тестирования JUnit.