mplayer를 사용하여 터미널에서 YouTube 비디오를 반복하고 싶습니다. 이를 위해 다음 코드를 작성했습니다.
#!/bin/bash
if [[ $(echo $*) ]]; then
searchterm="$*"
else
read -p "Enter the video ID: " searchterm
fi
searchterm=$(echo $searchterm | sed -e 's/\ /+/g')
video=$(youtube-dl -g https://youtube.com/v/$searchterm)
while true;
do
mplayer $video
sleep 2;
done
비디오를 재생하려면 스크립트에 비디오 ID를 제공해야 합니다. 예를 들어, 지금 보고 있는 동영상이 다음과 같다면:https://www.youtube.com/watch?v=daQhI1JFXn4v=
그럼 영상ID는 후반부죠daQhI1JFXn4
반복될 때마다 비디오를 다운로드한다는 점을 제외하면 모든 것이 잘 작동합니다. 파일이 한 번만 다운로드되어 계속해서 재생되도록 이를 변경할 수 있는 방법이 있는지 궁금합니다.
답변1
나는 이것으로 더 잘 작동하는 것을 찾았 지만 avplay
(원한다면 교체할 수 있음 ffplay
) mplayer로 남겨두겠습니다. tee
-파일에 저장하고 처음 재생할 때 유효하도록 파이프하십시오. 이전에 파일이 다운로드되었는지 확인하기 위해 검사를 추가했습니다.
#!/bin/bash
if [[ $(echo $*) ]]; then
searchterm="$*"
else
read -p "Enter the video ID: " searchterm
fi
searchterm=$(echo $searchterm | sed -e 's/\ /+/g')
video=$(youtube-dl -g https://youtube.com/v/$searchterm)
[[ -f $searchterm.mp4 ]] || wget -O - $video 2>/dev/null | tee $searchterm.mp4 | mplayer -
while true;
do
sleep 2;
mplayer $searchterm.mp4
done
답변2
리디렉션을 통해 YouTube-dl의 출력을 파일에 저장합니다. 명령 자체를 비디오 변수에 저장하는 대신.