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