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