get_youtube_videos/wrapper.sh

44 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
if [ -z "${HOME}" ]; then
if [ "$(whoami)" == "root" ]; then
HOME="/root"
else
HOME=$(grep "$(whoami)" /etc/passwd | awk 'BEGIN {FS=":"} {print($6)}')
fi
fi
CONFIG_FILE="${HOME}/.config/get_youtube_videos.conf"
cd "__src_folder__" || exit 1
if [ -r "${CONFIG_FILE}" ]; then
perms=$(stat -c %A "${CONFIG_FILE}")
if [ "${perms:4:6}" != '------' ]; then
echo "Permissions too open for config file '${CONFIG_FILE}' ($perms). Remove all permissions to group and others."
exit 1
fi
config=(--config "${CONFIG_FILE}")
else
config=()
fi
"__src_folder__/get_youtube_videos.sh" "${config[@]}" "${@}"
download_dir="$(grep download_dir "${CONFIG_FILE}" | awk 'BEGIN {FS="="} {print($2)}' | sed 's/"//g')"
if [ "${download_dir}" == "" ]; then
download_dir="${HOME}/downloaded_youtube_videos"
fi
cd "${download_dir}" || exit 1
# Clean up of JSON files from deleted videos
mkdir -p "${download_dir}/.json_from_deleted_videos/"
find . -mindepth 1 -maxdepth 1 -type f -iname \*.json | grep -Eo '\[[0-9a-zA-Z\_\-]{11}\]' |tr -d '][' | sort | uniq | while read -r video_id
do
if [ -z "$(ls -- *"${video_id}"*.mkv 2> /dev/null)" ]; then
if [ -z "$(ls -- *"${video_id}"*.mp4 2> /dev/null)" ]; then
# echo "No MKV/MP4 video for ${video_id}"
mv -- *"${video_id}"* "${download_dir}/.json_from_deleted_videos/"
fi
fi
done
# Allow access to everyone to the (public) videos
chmod 0777 "${download_dir}" -R
"__src_folder__/fix_dir_dates.sh"
jellyfin_token="$(grep jellyfin_token "${CONFIG_FILE}" | awk 'BEGIN {FS="="} {print($2)}' | sed 's/"//g')"
curl -s -X POST -H "Authorization: MediaBrowser Token=\"${jellyfin_token}\"" https://jf.koti.site/Items/d875e72781023f89a7e1f76529a9962a/Refresh