add yt-dlp-ntfy

This commit is contained in:
Lukáš Kucharczyk 2024-11-14 19:53:46 +01:00
parent 64e999d93c
commit e547a58026
1 changed files with 42 additions and 0 deletions

42
yt-dlp-ntfy.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/bash
set -uexo pipefail
# Define PID file location
PID_FILE="/tmp/yt-dlp-ntfy.pid"
# Check if the script is already running
if [ -e "$PID_FILE" ] && kill -0 $(cat "$PID_FILE"); then
echo "Script is already running. Exiting."
exit 1
fi
# Store the PID of the current process
echo $$ > "$PID_FILE"
# Define ntfy server and channel
NTFY_SERVER="https://notify.kucharczyk.xyz"
CHANNEL="clipboard"
ACCESS_TOKEN="$NTFY_ACCESS_TOKEN"
# Run the script in an infinite loop to listen for new messages
while true; do
while read -r message; do
video_url=$(echo "$message" | jq -r '.message')
if [[ $video_url =~ ^https?:// ]]; then
echo "Downloading video from $video_url"
yt-dlp "$video_url"
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -d "Finished downloading." "$NTFY_SERVER/$CHANNEL"
else
echo "Received non-URL message: $video_url"
fi
done
# Wait a bit before reconnecting if the connection drops
echo "Reconnecting..."
sleep 5
done < <(curl --no-buffer -s -H "Authorization: Bearer $ACCESS_TOKEN" "$NTFY_SERVER/$CHANNEL/json")
# Cleanup PID file on script exit
trap "rm -f $PID_FILE" EXIT