## Python Script-Along: Download Podcasts to an MP3 Player ## at Iffy Books | 404 S. 20th St., PHL | iffybooks.net #!/usr/bin/env python3 # Debian-based Linux #apt-get install python3 #apt-get install wget # macOS #brew install python3 #brew install wget #python3 -m pip install --user --break-system-packages lxml #python3 -m pip install --user --break-system-packages requests import requests import subprocess import os from lxml import etree download_directory = os.path.expanduser("~/Desktop/MP3_PLAYER/") os.chdir(download_directory) print("Downloading files to ...") print(download_directory) print("Current files ...") for filename in os.listdir('./'): print("• " + filename) #input("!!! Press ENTER to delete ALL files in the MP3_PLAYER directory and download new ones. !!!") #files_to_delete = [filename for filename in os.listdir() if not filename.startswith('.')] #files_to_delete = [filename for filename in files_to_delete if filename!='Podcast_MP3_Player_Downloader.py'] #for filename in files_to_delete: # print(filename) # os.remove(filename) # print("Deleted " + filename) ## Download BBC Global News Podcast RSS file url = "https://podcasts.files.bbci.co.uk/p02nq0gn.rss" query_parameters = {"downloadformat": "xml"} response = requests.get(url, params=query_parameters) ## Parse XML and get first MP3 link root = etree.fromstring(bytes(response.text, encoding='utf8')) mp3_urls = root.xpath('//enclosure/@url') first_mp3_url = mp3_urls[0] ## Download file with wget subprocess.call(['wget', '-N', first_mp3_url]) ## Download Democracy Now Podcast RSS file url = "https://www.democracynow.org/podcast.xml" subprocess.call(['wget',url]) with open('podcast.xml') as fi: html_string = fi.read() ## Parse XML and get first MP3 link (specific to BBC RSS files) root = etree.fromstring(bytes(html_string, encoding='utf8')) mp3_urls = root.xpath('//enclosure/@url') first_mp3_url = mp3_urls[0] ## Download file with wget subprocess.call(['wget', '-N', first_mp3_url])