#!/bin/bash # Takes a list of YouTube URLs on stdin. URLs for autogenerated channels are written to FD 3, all other URLs go to stdout. while read -r url do if [[ "${url}" == */channel/* ]] then header="$(curl -4sL -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' -H 'Accept-Language: en-US,en;q=0.5' "${url}?disable_polymer=1" | \ tr -d '\n' | \ grep -Po ']*\s)?class="([^"]* )?channel-header( [^"]*)?".*?]*\s)?id="channel-subheader"')" if grep -qP ']*\s)?class="([^"]+ )?yt-channel-title-autogenerated[ "]' <<<"${header}" then echo "${url}" >&3 continue fi fi echo "${url}" done