ダウンロードした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を介してWebビデオを再生することが目的の場合。

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文書。

関連情報