다운로드한 Youtube-DL 파일의 경로를 얻는 방법은 무엇입니까?

다운로드한 Youtube-DL 파일의 경로를 얻는 방법은 무엇입니까?

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문서.

관련 정보