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