From ff5c82191ff9e8b50021bb49fe06b3158d7c4ee7 Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Mon, 27 Sep 2021 14:36:44 +0800 Subject: [PATCH] feat: update m3u8 dl sh --- Scripts/m3u8-download/{dl.sh => withcred.sh} | 5 +- Scripts/m3u8-download/withkey.sh | 77 ++++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) rename Scripts/m3u8-download/{dl.sh => withcred.sh} (90%) create mode 100644 Scripts/m3u8-download/withkey.sh diff --git a/Scripts/m3u8-download/dl.sh b/Scripts/m3u8-download/withcred.sh similarity index 90% rename from Scripts/m3u8-download/dl.sh rename to Scripts/m3u8-download/withcred.sh index a4ff667..7e6033d 100644 --- a/Scripts/m3u8-download/dl.sh +++ b/Scripts/m3u8-download/withcred.sh @@ -20,7 +20,7 @@ function cleanup { } # register the cleanup function to be called on the EXIT signal -trap cleanup EXIT +# trap cleanup EXIT echo "請輸入m3u8網址: ( copy as cURL(bash) )" read m3u8 @@ -30,8 +30,9 @@ echo "請輸入其中一個ts的網址: ( copy as cURL(bash) )" read BASE echo -echo "請輸入下載檔案名稱: (ex: video.mp4)" +echo "請輸入下載檔案名稱[video.mp4]:" read output +output=${output:-video.mp4} echo echo "下載開始...." diff --git a/Scripts/m3u8-download/withkey.sh b/Scripts/m3u8-download/withkey.sh new file mode 100644 index 0000000..9810c3f --- /dev/null +++ b/Scripts/m3u8-download/withkey.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +# the directory of the script +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# the temp directory used, within $DIR +# omit the -p parameter to create a temporal directory in the default location +WORK_DIR=`mktemp -d -p "$DIR"` + +# check if tmp dir was created +if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then + echo "Could not create temp dir" + exit 1 +fi + +# deletes the temp directory +function cleanup { + rm -rf "$WORK_DIR" + echo "Deleted temp working directory $WORK_DIR" +} + +# register the cleanup function to be called on the EXIT signal +trap cleanup EXIT + +echo "請輸入key網址: ( copy as cURL(bash) )" +read key +echo + +echo "請輸入m3u8網址: ( copy as cURL(bash) )" +read m3u8 +echo + +echo "請輸入其中一個ts的網址: ( copy as cURL(bash) )" +read BASE +echo + +echo "請輸入下載檔案名稱[video.mp4]:" +read output +output=${output:-video.mp4} +echo +echo "下載開始...." + +key="${key} -o key" +m3u8="${m3u8} -o index.m3u8" +cd $WORK_DIR +# echo $(pwd) +eval " $key" +eval " $m3u8" + +origin=$(echo $BASE | sed -e "s/[^']*'\([^\?^']*\).*'.*/\1/" ) +file=${origin##*/} +file=$(echo $file | sed 's/[\*\.\&\?]/\\&/g') + +# echo BASE: $BASE +# echo origin: $origin +# echo file: $file + +echo 請確認或修改index.m3u8 +read dummy + +while read p; do + if [[ $p != "#"* ]]; then + pp=$(echo $p | sed 's/[\*\.\&\?]/\\&/g') + echo $p + ts="$(echo $BASE | sed "s,$file,$pp,") -o $p -w '%{http_code}'" + + status_code=$(eval " $ts") + if [ $status_code != "200" ]; then + echo + echo ERROR: $status_code, 下載失敗. + cat $p + exit 1 + fi + fi +done