pylastfp là một giao diện Python vào thư viện Last.fm của acoustic fingerprinting (gọi fplib) và các dịch vụ API liên quan của nó. & Nbsp; Nó thực hiện khai thác vân tay, tra cứu ID vân tay, và tra cứu theo dõi siêu dữ liệu. Nó cũng đi kèm với một số người giúp đỡ để giải mã các tập tin âm thanh.
Cài đặt
Để cài đặt, bạn sẽ cần một trình biên dịch và các phụ thuộc theo yêu cầu của bản thân fplib: fftw (biên dịch cho phao chính xác đơn) và libsamplerate.
Một khi bạn có này, bạn có thể dễ dàng cài đặt từ PyPI sử dụng pip:
pips cài đặt pylastfp
Hoặc, nếu bạn không có pip (hoặc easy_install), người đứng đầu đến trang download. Các cài đặt lệnh bình thường nên làm việc:
python setup.py cài đặt
Để xây dựng từ nguồn điều khiển phiên bản (tức là, không phải từ một tarball phát hành), bạn cũng sẽ cần Cython. (Các bản phân phối mã nguồn bao gồm C ++ tập tin được tạo ra, tránh sự cần thiết cho Cython. Setup.py của gói này đóng thủ thuật để phát hiện xem bạn đã cài đặt Cython.)
Chạy
Bạn có thể chạy các kịch bản bao gồm fingerprinter / tra cứu, lastmatch.py, để kiểm tra cài đặt của bạn:
& Nbsp; mysterious_music.mp3 lastmatch.py
Điều này sẽ hiển thị siêu dữ liệu từ cơ sở dữ liệu các trận đấu của Last.fm. Kịch bản sử dụng Python bindings GStreamer để giải mã MP3. Bạn cũng có thể sử dụng thay vì pymad GStreamer (cho MPEG audio only) bằng cách cung cấp những cờ -m:
& Nbsp; lastmatch.py -m mysterious_music.mp3
Sử dụng trong Code của bạn
Các kịch bản trưng bày các cách thông thường để sử dụng pylastfp, đó là:
>>> Nhập khẩu lastfp
>>> Xml = lastfp.gst_match (apikey, đường dẫn)
>>> Trận = lastfp.parse_metadata (xml)
>>> Print trận [0] ['nghệ sĩ'], '-', phù hợp [0] ['title']
Các quốc gia - Emprire Fake
Ví dụ này sử dụng các chức năng thuận tiện gst_match, trong đó sử dụng GStreamer để giải mã dữ liệu âm thanh. Các chức năng nhập khẩu các mô-đun GStreamer khi được gọi, vì vậy nếu bạn không muốn phụ thuộc vào GStreamer, chỉ cần không gọi chức năng này. Một chức năng tương tự được gọi mad_match thay vì nhập khẩu các thư viện pymad và sử dụng MAD để giải mã thay vì GStreamer.
Nếu bạn có cách riêng của bạn về giải mã âm thanh, bạn có thể sử dụng giao diện cấp thấp hơn:
>>> Xml = lastfp.match (apikey, pcmdata, samplerate, time_in_secs)
Tất nhiên, bạn sẽ cần một dòng PCM cho âm thanh bạn muốn dấu vân tay. Các tham số pcmdata phải là một iterable của Python đối tượng str hoặc đệm chứa dữ liệu PCM như mảng của C ngắn (16-bit số nguyên) giá trị.
Tất cả các chức năng này (trận đấu, gst_match, và mad_match) chấp nhận một tham số tùy chọn bổ sung được gọi siêu dữ liệu. Nó phải là một dict chứa đoán hiện tại siêu dữ liệu của tập tin. Last.fm có thể sử dụng thông tin này để cải thiện cơ sở dữ liệu của họ. Dict nên sử dụng các phím này (tất cả đều là tùy chọn): "nghệ sĩ", "album", và "theo dõi".
Các mô-đun trong nội bộ thực hiện thread-safe API hạn chế đến 5 truy vấn trên giây, phù hợp với TOS Last.fm của API
là gì mới trong phiên bản này:.
< p>- Sử dụng audioread thay vì pygst và pymad giải mã bao gồm.
là gì mới trong phiên bản 0.5:
- Xử lý phản ứng sản phẩm nào từ các API. setup.py doanh nghiệp tìm kiếm những người dùng địa phương tiền tố Homebrew.
là gì mới trong phiên bản 0.4:
- Lỗi Fix dọn dẹp trong gstdec đã gây ra các tập tin vẫn còn mở .
là gì mới trong phiên bản 0.3:
- Fix lỗi đánh máy trong việc xử lý các lỗi HTTP. Xử lý các trường hợp khi dòng trạng thái HTTP bị thay đổi
là gì mới trong phiên bản 0.2:
- Sửa chữa rò rỉ bộ nhớ khủng khiếp. Không an toàn khi tập tin là quá ngắn. Safely xử lý XML bị thay đổi trở về từ các API. Xử lý và phơi bày thất bại HTTP.
Yêu cầu :
- Python
Bình luận không