Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pafy
- import subprocess as sp
- import numpy as np
- import sounddevice as sd
- import time
- # from PyQt4 import QtCore, QtGui
- # from song import Ui_MainWindow
- AUDIO_ARRAY = []
- FFMPEG_BIN = "ffmpeg.exe"
- # class MyForm(QtGui.QMainWindow):
- # def __init__(self, parent=None):
- # QtGui.QWidget.__init__(self, parent)
- # self.ui = Ui_MainWindow()
- # self.ui.setupUi(self)
- def donwload_song(bestaudio):
- try:
- print "Donwloading Audio...."
- bestaudio.download()
- print "Finished Downloading"
- except:
- print "Finished Downloading"
- pass
- def play_music():
- fs = 44100
- sd.play(AUDIO_ARRAY[:2000000], fs)
- sd.play(AUDIO_ARRAY[2000000:4000000])
- print(len(AUDIO_ARRAY))
- while True:
- pass
- def read_audio_file(file_name):
- global AUDIO_ARRAY
- print "Reading File..." # on Windows
- command = [FFMPEG_BIN,
- '-i', file_name,
- '-f', 's16le',
- '-acodec', 'pcm_s16le',
- '-ar', '44100', # ouput will have 44100 Hz
- '-ac', '2', # stereo (set to '1' for mono)
- '-']
- pipe = sp.Popen(command, stdout=sp.PIPE, bufsize=10 ** 8)
- raw_audio = pipe.stdout.read()
- # Reorganize raw_audio as a Numpy array with two-columns (1 per channel)
- audio_array = np.fromstring(raw_audio, dtype="int16")
- AUDIO_ARRAY = audio_array.reshape((len(audio_array) / 2, 2))
- def main():
- # app = QtGui.QApplication(sys.argv)
- # myapp = MyForm()
- # myapp.show()
- #sys.exit(app.exec_())
- start = time.time()
- url = "https://www.youtube.com/watch?v=WCtUCW1sDqs"
- video = pafy.new(url)
- bestaudio = video.getbestaudio()
- donwload_song(bestaudio)
- read_audio_file(video.title+"."+bestaudio.extension)
- end = time.time()
- print end - start
- play_music()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement