2024-11-18 16:07:13 +01:00
|
|
|
#!/bin/bash
|
2025-01-04 17:54:41 +01:00
|
|
|
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}")"
|
2025-01-04 18:02:00 +01:00
|
|
|
else
|
|
|
|
echo "No folder for channel '${channel}', leaving files in the folder"
|
2025-01-04 17:54:41 +01:00
|
|
|
fi
|
|
|
|
fi
|
2024-11-20 09:49:23 +01:00
|
|
|
fi
|
2025-01-04 17:54:41 +01:00
|
|
|
done <<< "$(find . -mindepth 1 -maxdepth 1 | grep -v downloaded | grep -Eo '\[[^]]{11}' | tr -d '[]' | sort | uniq)"
|
|
|
|
fi
|
2024-11-20 12:37:21 +01:00
|
|
|
# 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)"
|