get_youtube_videos/classify_videos.sh

44 lines
2 KiB
Bash
Executable file

#!/bin/bash
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}")"
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)"