#!/bin/php <?php include 'FeedParser.php'; $feeds = [ 'https://www.youtube.com/feeds/videos.xml?channel_id=UCAFQjCZo5okIPkHUQlBZM-g', 'https://www.youtube.com/feeds/videos.xml?channel_id=UCk-_PEY3iC6DIGJKuoEe9bw', ]; $to_download = []; foreach ($feeds as $feed) { $to_add = []; $url = $feed; $parts = parse_url($url); $file = sprintf('%s/%s-%s.json', __DIR__, basename($parts['path']), $parts['query']); $first = null; if (!file_exists($file)) { touch($file); $content = []; } else { $content = json_decode(file_get_contents($file)); $first = isset($content[0]) ? $content[0] : null; } $rss = new FeedParser(); $rss->parse($feed); $items = $rss->getItems(); foreach ($items as $article) { $link = sprintf('http://www.youtube.com/watch?v=%s', $article['YT:VIDEOID']); if (!in_array($link, $content)) { $to_add[] = $link; $to_download[] = $link; } } file_put_contents($file, json_encode(array_merge($content, $to_add))); } foreach ($to_download as $url) { // https://www.reddit.com/r/selfhosted/comments/60hus4/searching_for_a_youtube_2_podcast_solution/ shell_exec("youtube-dl --extract-audio --audio-format mp3 -o '/volume1/music/Podcast/Youtube/%(upload_date)s-%(uploader)s-%(title)s.%(ext)s' $url"); }