YouTube에서 비디오를 쉽고 빠르게 다운로드할 수 있는 스크립트를 설계했습니다. 스크립트는 마지막에 다른 비디오를 다운로드할지 묻는 옵션을 사용합니다.
이것은 내 스크립트입니다.
#!/bin/bash
cd ~/Videos
read -p "Enter A Valid YouTube URL: " url
reset
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' $url
reset
while true; do
read -p "Do you wish to download another? " yn
case $yn in
[Yy]* ) reset; cd ~/Desktop; ./Youtube-DL-Video.sh;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
내 목표
방금 다운로드한 파일을 재생하는 옵션을 추가하고 싶습니다(OMXPlayer를 통해).
다운로드 경로를 제공할 수 있는 Youtube-DL 명령이 있습니까?
답변1
youtube-dl
--output
출력 대상을 설정할 수 있는 옵션이 있습니다 .
-o, --출력TEMPLATE
출력 파일 이름 템플릿은 "를 참조하세요.출력 템플릿" 모든 정보에 대해서는
예를 들어 다음 템플릿을 사용합니다.
--output "$XDG_DOWNLOAD_DIR/youtube/%(title)s.%(ext)s"
내 다운로드 디렉토리의 폴더 에 비디오를 다운로드 youtube
하고 비디오 제목을 파일 이름으로 사용합니다.
--get-filename
방금 다운로드한 파일을 재생하는 옵션을 추가하려면 비디오를 다운로드하지 않고 템플릿에 해당하는 파일 이름만 반환하는 옵션을 사용할 수 있습니다 .
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' -o <insert_your_ template_here> $url
file=$(youtube-dl -o <insert_your_template_here> --get-filename)
...
<video_player> $file
답변2
Raspberry Pi 하드웨어 가속을 활용하기 위해 omxplayer를 통해 웹 비디오를 재생하는 것이 목적인 경우.
youtube-dl을 사용하여 실제 비디오의 URL을 얻은 다음 omxplayer(또는 재생하기 쉽고 빠른 vlc)를 사용하여 스트리밍할 수 있습니다.
내가 사용하는 별칭은 다음과 같습니다.
alias omxstream='_(){ omxplayer `youtube-dl --get-url --format best[ext=mp4]/best $1`; };_'
간단한 파이프 명령에 더 많은 코드를 사용하려면 함수를 사용하여 이를 수행할 수도 있습니다.
function replay {
if test -z $1 ; then
echo -e "No arguments specified. Usage:\n${FUNCNAME[0]} replay-web-page-url"
return 1
fi
# both omxplayer and vlc are hardware accelerated on Raspberry Pi
vlc --fullscreen `youtube-dl --get-url --format best[ext=mp4]/best $1`
}
이는 스크립트를 사용하여 수행할 수도 있습니다.
참고로 이건 내꺼야현재 버전.bash_aliases
문서.