Guest User

Pandora mp3 stream error

a guest
Apr 4th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. import getpass
  2. import os
  3. import sys
  4. import pandora
  5. import pyaudio
  6. import requests
  7.  
  8. QUALITY = "mediumQuality"
  9.  
  10. username = input("Enter username: ")
  11. client = pandora.data.client_keys["android-generic"]
  12.  
  13. p = pandora.Pandora()
  14. p.set_audio_quality(QUALITY)
  15. try:
  16. p.connect(client, username, getpass.getpass("Password: "))
  17. except pandora.PandoraError as e:
  18. print(e.status)
  19. print(e)
  20. if e.status == pandora.ApiError.INVALID_LOGIN:
  21. print("Invalid login credentials.")
  22. sys.exit(1)
  23.  
  24. print("Logged in.")
  25.  
  26. stations = p.get_stations()
  27.  
  28. for idx, station in enumerate(stations, start=1):
  29. print(idx, station.name)
  30. print()
  31.  
  32. station_idx = int(input("Select a station: "))
  33. print()
  34.  
  35. station = stations[station_idx-1]
  36. print("Selected station:", station.name)
  37.  
  38. playlist = station.get_playlist()
  39.  
  40. audio = pyaudio.PyAudio()
  41. srate = 44100
  42.  
  43. for idx, song in enumerate(playlist):
  44. song_msg = "{} - {}".format(song.artist, song.title)
  45. print("Now playing:", song_msg)
  46.  
  47. audio_url = song.audioUrl
  48. bitrate = int(song.audioUrlMap[QUALITY]["bitrate"])
  49.  
  50. print("Audio url:", audio_url)
  51. print("bitrate:", bitrate)
  52.  
  53. stream = audio.open(
  54. format=audio.get_format_from_width(1),
  55. channels=1,
  56. rate=srate,
  57. output=True
  58. )
  59.  
  60. with requests.get(audio_url, stream=True) as s:
  61. for chunk in s.iter_content(chunk_size=1024):
  62. if chunk:
  63. print("Writing", len(chunk), "bytes to stream.")
  64. stream.write(chunk)
  65. print("Stream ended.")
  66. print()
Add Comment
Please, Sign In to add comment