2023-12-04 21:31:31 -05:00
|
|
|
|
namespace podcast_agent
|
2023-12-04 20:39:43 -05:00
|
|
|
|
{
|
2023-12-04 21:31:31 -05:00
|
|
|
|
using System.Xml.Linq;
|
|
|
|
|
|
2023-12-04 20:39:43 -05:00
|
|
|
|
class Program
|
|
|
|
|
{
|
|
|
|
|
static async Task Main(string[] args)
|
|
|
|
|
{
|
2023-12-04 21:31:31 -05:00
|
|
|
|
var downloader = new HttpClient();
|
|
|
|
|
downloader.DefaultRequestHeaders.UserAgent.ParseAdd("wget-is-not-a-crime");
|
|
|
|
|
|
|
|
|
|
var xml = XDocument.Load("https://feeds.npr.org/500005/podcast.xml");
|
|
|
|
|
|
|
|
|
|
XNamespace ns = "http://www.itunes.com/dtds/podcast-1.0.dtd";
|
|
|
|
|
foreach (var item in xml.Descendants("item"))
|
|
|
|
|
{
|
|
|
|
|
var title = item.Element("title")?.Value;
|
|
|
|
|
var ext=".wav";
|
|
|
|
|
var attachmentLink = item.Element("enclosure")?.Attribute("url")?.Value.ToString();
|
|
|
|
|
var probableFilename = attachmentLink.Substring(0, attachmentLink.IndexOf('?'));
|
|
|
|
|
if(probableFilename.LastIndexOf('.') > 0)
|
|
|
|
|
{
|
|
|
|
|
ext = probableFilename.Substring(probableFilename.LastIndexOf('.'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Console.WriteLine($"{title}, {attachmentLink}");
|
|
|
|
|
var downloadPath = title + ext;
|
|
|
|
|
var dlResult = (await downloader.GetAsync(attachmentLink));
|
|
|
|
|
File.WriteAllBytes(downloadPath, await dlResult.Content.ReadAsByteArrayAsync());
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-04 20:39:43 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|