ym_down
"/home/yossef/notes/git/scripts/ym_down.md"
path: git/scripts/ym_down.md
- **fileName**: ym_down
- **Created on**: 2025-03-26 16:53:28
for downlaod song from youtube music
#!/usr/bin/env bash
# Ensure yt-dlp is installed
command -v yt-dlp >/dev/null 2>&1 || { echo "yt-dlp is not installed. Install it with: sudo pacman -S yt-dlp"; exit 1; }
# Ensure an argument is passed
if [ -z "$1" ]; then
echo "Usage: ym_down <YouTube Music URL>"
exit 1
fi
# Download location
MUSIC_DIR="$HOME/Music"
# Fetch metadata first
metadata=$(yt-dlp --print "%(playlist_title|artist)s|%(title)s" "$1" 2>/dev/null)
# Extract playlist/artist and song title
playlist_name=$(echo "$metadata" | cut -d'|' -f1)
song_title=$(echo "$metadata" | cut -d'|' -f2)
# Set folder name
if [ -z "$playlist_name" ]; then
folder_name="Unknown"
else
folder_name="$playlist_name"
fi
# Ensure the folder exists
mkdir -p "$MUSIC_DIR/$folder_name"
# Check if song already downloaded
if grep -q "$song_title" "$MUSIC_DIR/downloaded.txt" 2>/dev/null; then
echo "Song '$song_title' is already downloaded. Skipping."
exit 0
fi
# Download the song/playlist
yt-dlp --extract-audio --audio-format mp3 --audio-quality 0 \
--embed-thumbnail --add-metadata --download-archive "$MUSIC_DIR/downloaded.txt" \
-o "$MUSIC_DIR/$folder_name/%(title)s.%(ext)s" "$1"
echo "Download complete: $folder_name/$song_title"
continue:./_install_virtualbox.md
before:./setup_mpd.md