podcast-agent/Program.cs

35 lines
1.3 KiB
C#
Raw Normal View History

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
}
}
}