#! /usr/bin/env sh # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Affero General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more # details. main() { # Handle opts opts "$@" shift "$OPTS" unset OPTS # Show help [ "$OPT_HELP_ONLY" ] && usage && exit 0 for url in $@ do curl -s "$url" \ | grep -Eo 'https://www.youtube.com/feeds/videos.xml?[^"]+' \ | head -n1 done # An alternate solution to grep -E # perl -n -e 'm@(https://www.youtube.com/feeds/videos.xml\?[^"]+)@ and print "$1\n"' } opts() { OPTS=0 while getopts ":h" opt do case "$opt" in h) OPT_HELP_ONLY=1 ;; *) printf "Invalid option passed: %s\n" "$OPTARG" >&2 ;; esac done unset opt } usage() { cat < [ ... ] Get the RSS feed URL of a YouTube channel through the channel's page URL. Options: -h Show this help text and exit. EOF } main "$@"