68 lines
2.9 KiB
Bash
Executable File
68 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
[ -z "${FAKE_ARGS_FILE:-}" ] || printf '%s\n' "$@" > "$FAKE_ARGS_FILE"
|
|
|
|
output_template=
|
|
episode_url=
|
|
while [ "$#" -gt 0 ]; do
|
|
if [ "$1" = "-o" ]; then
|
|
output_template=$2
|
|
shift 2
|
|
continue
|
|
fi
|
|
case "$1" in
|
|
https://tver.jp/episodes/*) episode_url=$1 ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
mode=${FAKE_YTDLP_MODE:-success}
|
|
if [ "$mode" = "mixed" ]; then
|
|
case "$episode_url" in
|
|
*/ep-fail) mode=unknown ;;
|
|
*) mode=success ;;
|
|
esac
|
|
fi
|
|
case "$mode" in
|
|
drm) echo 'ERROR: This video is DRM protected token=secret-value' >&2; exit 1 ;;
|
|
geo) echo 'ERROR: This video is not available from your location due to geo restriction' >&2; exit 1 ;;
|
|
network) echo 'ERROR: Unable to download JSON metadata: [Errno 61] Connection refused' >&2; exit 1 ;;
|
|
unavailable) echo 'ERROR: MEDIA_NOT_FOUND: episode does not exist' >&2; exit 1 ;;
|
|
extract) echo 'ERROR: Unable to extract player data' >&2; exit 1 ;;
|
|
unknown) echo 'ERROR: surprising failure' >&2; exit 1 ;;
|
|
hang|hang-drm)
|
|
[ -z "${FAKE_READY_FILE:-}" ] || : > "$FAKE_READY_FILE"
|
|
if [ "$mode" = "hang-drm" ]; then
|
|
trap 'echo "ERROR: DRM protected" >&2; [ -z "${FAKE_TERM_FILE:-}" ] || : > "$FAKE_TERM_FILE"; exit 143' TERM INT
|
|
else
|
|
trap '[ -z "${FAKE_TERM_FILE:-}" ] || : > "$FAKE_TERM_FILE"; exit 143' TERM INT
|
|
fi
|
|
while :; do sleep 1; done
|
|
;;
|
|
esac
|
|
|
|
output=$(printf '%s' "$output_template" | sed 's/%(id)s/fake/g; s/%(ext)s/mp4/g')
|
|
mkdir -p "$(dirname "$output")"
|
|
printf 'fake mp4' > "$output"
|
|
if [ "$mode" = "symlink" ]; then
|
|
rm "$output"
|
|
ln -s "$FAKE_OUTSIDE_FILE" "$output"
|
|
fi
|
|
|
|
if [ "$mode" = "burst" ]; then
|
|
i=1
|
|
while [ "$i" -le 20 ]; do
|
|
printf '{"event":"download","format_id":"hls-698-1","progress":{"status":"downloading","downloaded_bytes":%s,"total_bytes":100,"speed":10,"eta":2,"fragment_index":%s,"fragment_count":20}}\n' "$i" "$i"
|
|
i=$((i + 1))
|
|
done
|
|
sleep 0.12
|
|
else
|
|
echo '{"event":"download","format_id":"hls-698-1","progress":{"status":"downloading","downloaded_bytes":1024,"fragment_index":0,"fragment_count":50,"filename":"/private/tmp/tver-spike/epq432nee4.fhls-698-1.mp4","tmpfilename":"/private/tmp/tver-spike/epq432nee4.fhls-698-1.mp4.part","max_progress":null,"progress_idx":null,"elapsed":0,"total_bytes_estimate":29798400.0,"speed":4834.271158821972,"eta":null,"_eta_str":"Unknown","_speed_str":" 4.72KiB/s","_percent":0.003436426116838488,"_percent_str":" 0.0%","_total_bytes_str":" N/A","_total_bytes_estimate_str":" 28.42MiB","_downloaded_bytes_str":" 1.00KiB","_elapsed_str":"00:00:00","_default_template":" 0.0% of ~ 28.42MiB at 4.72KiB/s ETA Unknown (frag 0/50)"}}'
|
|
sleep 0.02
|
|
echo '{"event":"download","format_id":"hls-ts_AUDIO-0_2","progress":{"status":"finished","downloaded_bytes":50,"total_bytes":50,"speed":20,"eta":0}}'
|
|
sleep 0.02
|
|
echo '{"event":"postprocess","progress":{"status":"started","postprocessor":"Merger"}}' >&2
|
|
fi
|
|
printf '{"event":"after_move","filepath":"%s"}\n' "$output"
|