| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  | # coding: utf-8 | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							| 
									
										
										
										
											2014-03-28 23:22:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  | import calendar | 
					
						
							|  |  |  | import datetime | 
					
						
							|  |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # audios on oe1.orf.at are only available for 7 days, so we can't | 
					
						
							|  |  |  | # add tests. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OE1IE(InfoExtractor): | 
					
						
							| 
									
										
										
										
											2014-03-28 23:22:43 +01:00
										 |  |  |     IE_DESC = 'oe1.orf.at' | 
					
						
							|  |  |  |     _VALID_URL = r'http://oe1\.orf\.at/programm/(?P<id>[0-9]+)' | 
					
						
							| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         mobj = re.match(self._VALID_URL, url) | 
					
						
							|  |  |  |         show_id = mobj.group('id') | 
					
						
							| 
									
										
										
										
											2014-03-28 23:22:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         data = self._download_json( | 
					
						
							| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  |             'http://oe1.orf.at/programm/%s/konsole' % show_id, | 
					
						
							|  |  |  |             show_id | 
					
						
							| 
									
										
										
										
											2014-03-28 23:22:43 +01:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         timestamp = datetime.datetime.strptime('%s %s' % ( | 
					
						
							|  |  |  |             data['item']['day_label'], | 
					
						
							|  |  |  |             data['item']['time'] | 
					
						
							|  |  |  |         ), '%d.%m.%Y %H:%M') | 
					
						
							|  |  |  |         unix_timestamp = calendar.timegm(timestamp.utctimetuple()) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             'id': show_id, | 
					
						
							|  |  |  |             'title': data['item']['title'], | 
					
						
							|  |  |  |             'url': data['item']['url_stream'], | 
					
						
							|  |  |  |             'ext': 'mp3', | 
					
						
							| 
									
										
										
										
											2014-03-28 23:22:43 +01:00
										 |  |  |             'description': data['item'].get('info'), | 
					
						
							| 
									
										
										
										
											2014-03-28 17:57:25 +02:00
										 |  |  |             'timestamp': unix_timestamp | 
					
						
							|  |  |  |         } |