2017-09-10 21 views
1

私はpythonでVLCモジュールを使用して、YouTubeのプロジェクトでmp3コンバータにダウンロードした音楽を再生しています。問題は、私は、これらのファイルが協力したくないことを発見しました。そして、Pythonは私に赤の負荷をかけてしまいます。 mp3ファイルにはタグがないので、モジュールがそれらをチェックし、存在しないときは私にエラーを投げます。ここに私のコードは次のとおりです。ここでPython VLCモジュールがタグなしで動作しない

import vlc 
import os 
import time 

def playtrack(fileid, songname): 
    filename = fileid + ".mp3" 
    print('Now playing: ' + songname) 
    music = vlc.MediaPlayer(filename) 
    music.play() 
    print(music.get_state()) 
    time.sleep(60) 
    print("Finished.") 
    #os.remove(filename) 

playtrack("tVj0ZTS4WF4", "foo") 

は、出力が「非常に長い...」です:

Now playing: foo 
State.NothingSpecial 
Warning: option --plugin-path no longer exists. 
Warning: option --plugin-path no longer exists. 
TagLib: MPEG::Header::parse() -- The next frame was not consistent with this frame. 
TagLib: MPEG::Header::parse() -- The next frame was not consistent with this frame. 

あり、これよりもWAY以上のエラーがあるが、StackOverflowのは、それらすべてを入れてから私を制限します。彼らはとにかく、まったく同じです。それが必要かどう

TagLib: MPEG::Header::parse() -- The next frame was not consistent with this 
TagLib: MPEG::Header::parse() -- Invalid MPEG version bits. 
TagLib: MPEG::Header::parse() -- Invalid MPEG layer bits. 
TagLib: MPEG::Header::parse() -- Invalid MPEG version bits. 
TagLib: MPEG::Header::parse() -- Invalid bit rate. 
TagLib: MPEG::Header::parse() -- Invalid MPEG version bits. 
TagLib: MPEG::Header::parse() -- The next frame was not consistent with this frame. 
TagLib: MPEG::Header::parse() -- Invalid bit rate. 
TagLib: MPEG::Header::parse() -- Could not read the next frame header. 
TagLib: MPEG::Header::parse() -- The next frame was not consistent with this frame. 
TagLib: MPEG::Properties::read() -- Could not find a valid first MPEG frame in the stream. 
Finished. 

Process finished with exit code 0 

はここで、ダウンローダです:私は私のマシン上で、あなたのコードを試してみましたし、それが動作

import youtube_dl 
import os 


class InvalidURL(Exception): 
    pass 


class SongExists(Exception): 
    pass 


def download(url): 
    try: 
     options = { 
      'format': 'bestaudio/best', 
      'extractaudio': True, # only keep the audio 
      'audioformat': "mp3", # convert to wav 
      'outtmpl': '%(id)s.mp3', # name the file the ID of the video 
      'noplaylist': True, # only download single song, not playlist 
     } 
     with youtube_dl.YoutubeDL(options) as ydl: 
      r = ydl.extract_info(url, download=False) 
      if os.path.isfile(str(r["id"])): 
       raise SongExists('This song has already been requested.') 
      print("Downloading" + str(r["title"])) 
      ydl.download([url]) 
      print("Downloaded" + str(r["title"])) 
      return r["title"], r["id"] 
    except youtube_dl.utils.DownloadError: 
     raise InvalidURL('This URL is invalid.') 

if __name__ == "__main__": 
    download("https://www.youtube.com/watch?v=tVj0ZTS4WF4") 

答えて

0

。私はあなたが古いバージョンまたは古くなったライブラリを使用していると思います。下のコードを試してみてください...

sudo pip uninstall vlc 
sudo pip uninstall python-vlc 
sudo pip install python-vlc 
+1

MP3ファイルの代わりにWAVファイルを使用して問題を解決しました。とにかく感謝しています。 –

+0

@GamingWithAltitudeようこそ。 –

関連する問題