#!/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