Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- Ohjelma lataa Jari Sarasvuon YLE Puheessa keväällä/kesällä 2013 esitetyn ohjelmasarjan jaksot mp3-tiedostoina.
- Suorittaminen:
- - Linux-ympäristössä komentoriviltä: python tiedostonimi.py
- - Tai antamalla chmod:lla suoritusoikeudet ja sitten: ./tiedostonimi.py ko. hakemistossa suoritettuna
- Toimii ainakin Python 2.7, mutta ei Python 3 ilman pieniä muokkauksia (ks. alla)
- @author Janne Cederberg, Opetus.tv
- @date 2013-08-06
- @license GPL
- """
- import xml.etree.ElementTree as ET
- from urllib2 import urlopen, URLError, HTTPError
- #from datetime import datetime
- import email.utils
- def download(url, target_name):
- try:
- f = urlopen(url)
- with open(target_name, 'wb') as target_file:
- target_file.write( f.read() )
- except HTTPError, e: # Python 2
- #except HTTPError as e: # Python 3
- print 'HTTP Error: ', e.code, url # Python 2
- except URLError, e: # Python 2
- #except URLError as e: # Python 3
- print 'URL Error: ', e.reason, url # Python 2
- finally:
- f.close()
- target_file.close()
- def process_rss(rss_url):
- tree = ET.parse( urlopen(rss_url) )
- items = tree.findall('channel/item')
- for item in items:
- title = item.find('title').text.strip().replace(':', ' -').replace('?', '')
- url = item.find('enclosure').attrib['url']
- #date = datetime.strptime( item.find('pubDate').text, '%a, %d %b %Y %H:%M:%S +0200')
- date = email.utils.parsedate_tz( item.find('pubDate').text )
- fname = "%d-%02d-%02d, %s" % (date[0], date[1], date[2], title+'.mp3')
- print "Kopioidaan tiedostoa: %s" % fname
- download(url, fname)
- if __name__ == '__main__':
- # Sarasvuon YLE Puhe -ohjelmien RSS feedin URL
- rss_url = 'http://areena.yle.fi/api/search.rss?id=1791080&media=audio&ladattavat=1'
- process_rss(rss_url)
Add Comment
Please, Sign In to add comment