add Screens and Poster and scp to generate torrent script

This commit is contained in:
lucas committed 2026-10-02 14:38:36 +02:00
1 parent e0a7968757
commit f65e51509a
1 file changed
+82 -25
+82 -25
View File
@@ -8,16 +8,23 @@ PIECE_SIZE=22
INPUT="$1"
SEARCH_NAME="${2:-}"
TYPE="${3:-}"
SKIP_TORRENT_CREATION="${4:-}"
if [ ! -e "$INPUT" ] || [ -z "$SEARCH_NAME" ] || [ -z "$TYPE" ]; then
echo "Usage: $0 <input-file> <search-name> <movie/tv>"
if [ ! -d "$INPUT" ] ; then
echo "Input missing"
echo "Usage: $0 <input-file> <search-name> <movie/tv> --skip (opt)"
exit 1
elif [ -z "$SEARCH_NAME" ] ; then
echo "Search name missing"
echo "Usage: $0 <input-file> <search-name> <movie/tv> --skip (opt)"
exit 1
elif [ -z "$TYPE" ]; then
echo "Type not present"
echo "Usage: $0 <input-file> <search-name> <movie/tv> --skip (opt)"
exit 1
fi
if [ -f "$INPUT" ]; then
NAME=$(basename "$INPUT")
NAME="${NAME%.*}" # remove extension
elif [ -d "$INPUT" ]; then
if [ -d "$INPUT" ]; then
NAME=$(basename "$INPUT")
else
echo "Input does not exist: $INPUT"
@@ -124,22 +131,31 @@ BACKDROP_PATH=$(echo "$DETAILS" | jq -r '.backdrop_path // empty')
POSTER_URL="N/A"
BACKDROP_URL="N/A"
if [[ -n "$POSTER_PATH" ]]; then
POSTER_URL="https://image.tmdb.org/t/p/original${POSTER_PATH}"
fi
if [[ -n "$BACKDROP_PATH" ]]; then
BACKDROP_URL="https://image.tmdb.org/t/p/original${BACKDROP_PATH}"
fi
[[ -n "$POSTER_PATH" ]] && \
POSTER_URL="https://image.tmdb.org/t/p/original${POSTER_PATH}"
[[ -n "$BACKDROP_PATH" ]] && \
BACKDROP_URL="https://image.tmdb.org/t/p/original${BACKDROP_PATH}"
mkdir -p "$INPUT/Screens"
if [[ "$POSTER_URL" != "N/A" ]]; then
curl -L "$POSTER_URL" \
-o "$INPUT/Screens/$(basename "$POSTER_PATH")"
fi
 
if [[ "$BACKDROP_URL" != "N/A" ]]; then
curl -L "$BACKDROP_URL" \
-o "$INPUT/Screens/$(basename "$BACKDROP_PATH")"
fi
# --data-urlencode "api_key=AB" \
# "https://api.themoviedb.org/3/search/tv"
echo "Collecting media info..."
if [ -f "$INPUT" ]; then
MEDIA_FILE="$INPUT"
else
MEDIA_FILE=$(find "$INPUT" -type f \( \
-iname "*.mkv" -o \
-iname "*.mp4" -o \
@@ -148,7 +164,6 @@ MEDIA_FILE=$(find "$INPUT" -type f \( \
-iname "*.m4v" -o \
-iname "*.ts" \
\) | head -n1)
fi
MEDIAINFO_OUTPUT=$(mediainfo "$MEDIA_FILE")
@@ -214,17 +229,59 @@ mediainfo
==================================================
EOF
SCREEN_DIR="$INPUT/Screens"
mkdir -p "$SCREEN_DIR"
 
# Videolänge in Sekunden
DURATION=$(ffprobe -v error \
-show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 \
"$MEDIA_FILE")
 
# 5 gleichmäßig verteilte Screenshots (10%-90%)
for i in {1..5}; do
PERCENT=$((i * 100 / 6))
TIMESTAMP=$(awk "BEGIN {print $DURATION * $PERCENT / 100}")
 
ffmpeg -y \
-ss "$TIMESTAMP" \
-i "$MEDIA_FILE" \
-frames:v 1 \
-q:v 2 \
"$SCREEN_DIR/screen_$i.png" \
>/dev/null 2>&1
done
 
echo "Screenshots erstellt in: $SCREEN_DIR"
echo "Created:"
echo " ${NAME}.torrent"
echo " ${NAME}.nfo"
echo
echo "Creating torrent..."
mktorrent \
-p \
-l "$PIECE_SIZE" \
-a "$TRACKER" \
-o "${NAME}.torrent" \
"$INPUT"
if [[ "$SKIP_TORRENT_CREATION" == "--skip" ]]; then
echo
echo Skip torrent cration
else
echo
echo "Creating torrent..."
mktorrent \
-p \
-l "$PIECE_SIZE" \
-a "$TRACKER" \
-o "${NAME}.torrent" \
"$INPUT"
fi
for f in "$INPUT"/Screens/*; do
[[ -e "$f" ]] && FILES+=("$f")
done
ssh lucas@vivohost "mkdir -p \"Torrents/$NAME\"" 
scp \
"${NAME}.torrent" \
"${NAME}.nfo" \
lucas@vivohost:"Torrents/$NAME/"
scp -r \
"$INPUT/Screens" \
lucas@vivohost:"Torrents/$NAME/"