Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import getpass
- import os
- import sys
- import pandora
- import pyaudio
- import requests
- QUALITY = "mediumQuality"
- username = input("Enter username: ")
- client = pandora.data.client_keys["android-generic"]
- p = pandora.Pandora()
- p.set_audio_quality(QUALITY)
- try:
- p.connect(client, username, getpass.getpass("Password: "))
- except pandora.PandoraError as e:
- print(e.status)
- print(e)
- if e.status == pandora.ApiError.INVALID_LOGIN:
- print("Invalid login credentials.")
- sys.exit(1)
- print("Logged in.")
- stations = p.get_stations()
- for idx, station in enumerate(stations, start=1):
- print(idx, station.name)
- print()
- station_idx = int(input("Select a station: "))
- print()
- station = stations[station_idx-1]
- print("Selected station:", station.name)
- playlist = station.get_playlist()
- audio = pyaudio.PyAudio()
- srate = 44100
- for idx, song in enumerate(playlist):
- song_msg = "{} - {}".format(song.artist, song.title)
- print("Now playing:", song_msg)
- audio_url = song.audioUrl
- bitrate = int(song.audioUrlMap[QUALITY]["bitrate"])
- print("Audio url:", audio_url)
- print("bitrate:", bitrate)
- stream = audio.open(
- format=audio.get_format_from_width(1),
- channels=1,
- rate=srate,
- output=True
- )
- with requests.get(audio_url, stream=True) as s:
- for chunk in s.iter_content(chunk_size=1024):
- if chunk:
- print("Writing", len(chunk), "bytes to stream.")
- stream.write(chunk)
- print("Stream ended.")
- print()
Add Comment
Please, Sign In to add comment