61 lines
2.6 KiB
Bash
Executable file
61 lines
2.6 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"
|
|
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
|
|
chmod 0777 "${download_dir}" -R
|
|
chown glances:ssl-cert "${download_dir}" -R
|
|
if [ -r "${HOME}/.config/youtube_channels_folders.json" ]; then
|
|
while read -r video_id
|
|
do
|
|
if [ -n "${video_id}" ]; then
|
|
echo "Video ID: '${video_id}'"
|
|
channel=$(yt-dlp -J -- "${video_id}" | jq '.channel' | sed 's/"//g' | head -n1)
|
|
if [ -z "${channel}" ] && [ "${channel}" == "null" ]; then
|
|
channel='Unknwon channel'
|
|
fi
|
|
echo "Channel name: '${channel}'"
|
|
if [ -n "${video_id}" ] && [ "${video_id}" != "null" ]; then
|
|
channel_folder=$(jq ".[\"${channel}\"]" "${HOME}/.config/youtube_channels_folders.json" | sed 's/"//g')
|
|
if [ -n "${channel_folder}" ] && [ "${channel_folder}" != "null" ]; then
|
|
mkdir -p "${channel_folder}"
|
|
while read -r file
|
|
do
|
|
echo "Moving file '${file}' to '${channel_folder}'..."
|
|
mv -- "${file}" "${channel_folder}/"
|
|
done <<< "$(ls | grep -- "${video_id}")"
|
|
else
|
|
echo "No folder for channel '${channel}', leaving files in the folder"
|
|
fi
|
|
fi
|
|
fi
|
|
done <<< "$(find . -mindepth 1 -maxdepth 1 | grep -v downloaded | grep -Eo '\[[^]]{11}' | tr -d '[]' | sort | uniq)"
|
|
fi
|
|
# while read -r video_id
|
|
# do
|
|
# if [ -n "${video_id}" ]; then
|
|
# echo "Video ID: '${video_id}'"
|
|
# channel=$(yt-dlp -J -- "${video_id}" | jq '.channel' | sed 's/"//g' | head -n1)
|
|
# if [ -z "${channel}" ] && [ "${channel}" == "null" ]; then
|
|
# channel='Unknwon channel'
|
|
# fi
|
|
# echo "Channel name: '${channel}'"
|
|
# if [ -n "${video_id}" ] && [ "${video_id}" != "null" ]; then
|
|
# mkdir -p "${channel}"
|
|
# while read -r file
|
|
# do
|
|
# echo "Moving file '${file}'..."
|
|
# mv -- "${file}" "${channel}/"
|
|
# done <<< "$(ls | grep -- "${video_id}")"
|
|
# fi
|
|
# fi
|
|
# done <<< "$(find . -mindepth 1 -maxdepth 1 | grep -v downloaded | grep -Eo '/[^\. ]{11}' | tr -d '/' | sort | uniq)"
|