Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chroma plugin errors with non-ascii charaters under python 3 when trying to submit #2671

Closed
arogl opened this issue Aug 26, 2017 · 3 comments
Labels
bug bugs that are confirmed and actionable

Comments

@arogl
Copy link
Contributor

arogl commented Aug 26, 2017

Problem

chroma plugin errors with non-ascii charaters under python 3 when trying to submit

Running this command in verbose (-vv) mode:

> beet -vvv submit
user configuration: C:\Users\arogl\AppData\Roaming\beets\config.yaml
data directory: C:\Users\arogl\AppData\Roaming\beets
plugin paths: C:\Users\arogl\AppData\Roaming\beets\beetsplug
Sending event: pluginload
library database: C:\Users\arogl\AppData\Roaming\beets\library.db
library directory: I:\Music
Sending event: library_opened
chroma: I:\Music\3\3OH!3\(2010) Streets of Gold\Streets of Gold - 04 - 3OH!3 - Déjà Vu.flac: fingerprinting

Running fpcalc from the command line works

> fpcalc "I:\Music\3\3OH!3\(2010) Streets of Gold\Streets of Gold - 04 - 3OH!3 - Déjà Vu.flac"
FILE=I:\Music\3\3OH!3\(2010) Streets of Gold\Streets of Gold - 04 - 3OH!3 - D├®j├á Vu.flac
DURATION=185
FINGERPRINT=AQADtCe1SMlQ_nA-9Hg85IeOHLdwSWnxolyjwaEkfLng5-iDwq2O15Wxj6h1PF6RB08OrVtSyJWEyuzwkrh-9IUPPUat4H2O7-iztXgiaDKPZ8QJkkeYo89SML_xaai0tMflo0cYLhT6w_mhrYmKU8Qp9IIPXUdzJi7O4FphndB5PDbCxFLwHM2HeJOa4VmMH_IUZOkNO6hOtGTxHe_RLzk-6QhfwrJ-6D2o47zhw8-ER4d-9ET845Lgv8jv49ByXDMc59DRZ0cuEs9RHY11fAcDKhzS99DWzGiLpsIRHj7xPbhudAyD1kd6BfKPxgmRo7phTuiDHoFj4Qpx-MK05viKXYKmB__Bw10UPBk04vwxfiF6HdYZQsWNq9g4Dj904TyYEjmaONdRhH7w8Lhy44LzB-Jz9HhUfEb1Q9k_-D26rSVaNWji7DhUWTee4LqCNxkpVLbhHVqjREa-HrUSBZ69oh--wUk1F3eRTLxVhPnxr_jRZ0P6RKgPVUsU5MUaHj2as3iP2A10JjLeH_UUnBTwDGagB3YIJw3y4MsK_5he1DeaV4iN7hy05D-uI88QqsmK5tNxLYP6Iz-mPOgZtA-2W8EF52iPfkivBtp83Ed09H3wHdjXDM2j4cZzoaGmRLjywutx3shT6FJ2I6Vy1O_wJ_jhBzHd46EOvfOE_gnCHPkjVEyyVIMoRU-QJ7hzmGOKo6mkHNeO4-HRjEzRZ_iNH3mCJKSoo7uGJm2IH83Ra0dMBVqO8zju5Tgn6FRh9rgzFlbIHLxw_dDi1HgUHjmuI0ya5MGjHln0HSGPpjou0XiL5kefXMPFHOqqoz0aOcqDy0cPn8bTKNCO3ReeCz-0d9AizUzwH82LHtfROJmK8Hg2BvfRJGWOqYqZo9QnNMeJH59q5DnUE8x0wSFMKUoRnsepCI2qo3KCBwdj9XgUOOnxH-F59IEW5hee5AHScx-ezMdndWiSiCKYo3YYNLtD_DiPB2HOQ9OL3A--g7FyoaGME2dgFVeO89gfPOKL_mheRoh_XIuwPQvxHY8eNM8GzWLwt0Wc5Wh-fDu8oz6OKzzyKNAenIWzClZDoU92HJ-K_oEOx9Ce4QjH0IEfHlY79Amq48gPkRnCB7eO-xneqKikw5dxHWF-aCca_BSuhMN99IKY8UJ3BfmNX8iX4w8aculRmR30a9gzaFUYB03So6KC5mOQ49nR8Bv6HPcynMqPKcl1HG6doMeHM7iKbJsULeigJQ9xXmjSfuizIFxpNM9S0EOPt8ET5IfIhxjNI1VTDqF2HM0zaGfwFs-h0B-qVEH-HD_6BxceZIlTgbEp6A_xREUvBQ2Pn0cuNJHeogul4oou_MQp6Xh4NBcRfgSvQI90NE-hfXhyNBW5oDIjXMyJ6rgMyWfxw7tw9rCT4oezHvKH5tmxv9CXvdh59Mrh3-iXI_7QcCdKsgkeFj6RM8V_qJL0o8_xzLB6XGrwMYW-JMdXpFuYo89w5UI-H80LTceLRupxDX7QH3p2TCx-PApt9Mf0GXkf2EHH5siFo95uiGcMP4eP3EX-BLbg_NA1w9YV9CjcHdU1vL3Q8MedwKGOF1oXHv-IO0JDhQ1q7kDzEVpvIqaNRmwxPcKFix6mH6k8SBEi_fBDPNIFN4mSoi_CPEcPNcd5aURfeBLEO4Sfo9eF48d-aCTDwDz8IJ0-PEeP08V3xPyEx8ugnT-2ByFqEd8epJ12_MW7Q5O54NnxIlJzNL-M32A-ONvRXYikHw2zhdCV4z6OsktxGp0iNtB4NLk1fMqNT_xwZilqURP8XNB-lM-hrMqMS5kF_7ilEH5O9EdONA-P9jnyo1fhUIw2XDzE_TL65DiuHuW0E8qVY0Z-PIcnMSoqJ8KPXDa0M4idVYT_4Yf1BDkhpvoQ_ugD_woe3Dn8RBWcaB6NEF-PWnGhI0y4PbgS7Lrwo1WI6wiPH1rWo3YYXEd-IaeEJs7iotahH7U5OE52fIaTSfvRtwhxpSKCizl0jjty6vADxwuJaWGi4EpCVviJVxXSvEj-jMPFSaj-JDCN6gNH5WiTINWTQ9uN7DlOkmiUzjLO5EVTWziL_2h49Aqx8_iGH9ETCZqeI4zmTXgb1EfzCLeG7DnRtOiEk0U1iUX6Hb1RSgnhmOzQPUUoySSaG7o0IXeOn_iio0mfCY80hLJM9NDCcAatBPrh0wryZCTyG9XQyMd_1DwhOvjGQnlx6iiXK9B5nC8qTymapC--Q-SK8_jCInzQjByxB89O4VK-ggl_nEIzPGBN4UG-Q1p0ogmP_ni2wNfRD2GCzweP0yemSzGcCtfxHx_zIcyDfxGuQ2Q85MrxXxij5oKrDKyio6eLZo_wL8WLXBDv4z9yXWC6HA3j4JNxoRmDSjy-Yb_wCxeap0KPXD--ZYL4BFeO5wjzqCNCLtKFvMWkXDmcPTjbozl-HFeW4suR7Ebqo3qEbiKa6_jxHrlCQ22yRsh19OEQ5jgtHHp2vPMQIoefGSUL6TZ-4XEs1If3nHiVo_EFqczR00KzB09efJFO9GiOazk0I9oHi-Ex6cfVCxvHPMgFXIrQ5EO4sqgcNN_xXXg8oeGLPngXnD8m5fiHPzhqHw9z5IX6DUykI2ycGH2So9GEE03UHSEgEkBZSCgQhiAkDEDMSGWZQkAoY4BgQHhmGLJCECOIUAIiB5TBEAACDIKGIcCYAsAJYAkQTAihAABCAcUEFEAJoAwQADNCgAFOQIMIEk4AZAQAkhCFBEPeGGMMEcArBgQARiDkEGJEBIKMQQYRBwRzyBAhEBGYKAQEEUAgJZQgwhEIAFEcAAWEIY5BaQgCRhgjAFMECCEIwlY4YT40BAFmAHACIQCcIxQZCYQAQAokCAIAASEAgUBJoRwzRBBgpCIGMSqEEcYA4pAACAOBDLCIAWEEUMYwJABAQEFAAABCAKCQowIAABATjAEjAECQAKOAcgIB6SVBBjghoBLIGAAYAEAYRAAjhghhGEEECWKIMoQYYBQCShgEAHBEGuEgMYQBDIAHRKDFgBBUSaAIAERgZRAChCGDCCVACIQEEE4wYgzhxgAFGDAACKoVU8gQIYACTBmgHAkCMmMIMIwAxJlwTAAECAIIKAMgA4gCI5BTRiCDgNKOAIQcBEAAQQgABBjCAGFAGAAFEIYpYADxQhjCCFBKECOUAowZBgggwGECgAIGCEOQUMgIBQhASggCDBVKIeYUAQYYILkCBgjEBDETKAOsogAwggUQAgBCECEGAKQUIFYQ5ARUhBASoCEIEAIIMgIIJABQQCngBJDGCAaAIBQBAhQIzCDIBDDeEEUUUEIoBAAgBjhBoCDEiqGMMUopQwUDACAkBBBGGoYQEIACIZwDhCADkCMCMGOIYcwYA5gERDAgFFHCACIQMcIiA5ABiBBhhAOGEGaUQUgBpAwQAAFAISOAMIAMEYIRDIBABhhhBEBCGccAEEAIZwCRRBAAFEEKWUGQUwgpQwwwxjCDgADAEYEI9cYZgQwAwDBhlBOAOUQAAQBAQAAxChmBFAGAA4EIAAQC4I0gwCAGlAMMAIQkgIQBZRwQBAE

Led to this problem:

Traceback (most recent call last):
  File "C:\Python36\Scripts\beet-script.py", line 11, in <module>
    load_entry_point('beets==1.4.6', 'console_scripts', 'beet')()
  File "C:\Python36\lib\site-packages\beets-1.4.6-py3.6.egg\beets\ui\__init__.py", line 1256, in main
    _raw_main(args)
  File "C:\Python36\lib\site-packages\beets-1.4.6-py3.6.egg\beets\ui\__init__.py", line 1243, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "C:\Python36\lib\site-packages\beets-1.4.6-py3.6.egg\beetsplug\chroma.py", line 187, in submit_cmd_func
    submit_items(self._log, apikey, lib.items(ui.decargs(args)))
  File "C:\Python36\lib\site-packages\beets-1.4.6-py3.6.egg\beetsplug\chroma.py", line 243, in submit_items
    fp = fingerprint_item(log, item)
  File "C:\Python36\lib\site-packages\beets-1.4.6-py3.6.egg\beetsplug\chroma.py", line 298, in fingerprint_item
    _, fp = acoustid.fingerprint_file(item.path)
  File "C:\Python36\lib\site-packages\acoustid.py", line 323, in fingerprint_file
    return _fingerprint_file_fpcalc(path, maxlength)
  File "C:\Python36\lib\site-packages\acoustid.py", line 277, in _fingerprint_file_fpcalc
    stderr=devnull)
  File "C:\Python36\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Python36\lib\subprocess.py", line 966, in _execute_child
    args = list2cmdline(args)
  File "C:\Python36\lib\subprocess.py", line 461, in list2cmdline
    needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: a bytes-like object is required, not 'str'

Here's a link to the music files that trigger the bug (if relevant):

Setup

  • OS: win 10 x64
  • Python version: 3.6.2 x64
  • beets version: latest git
  • Turning off plugins made problem go away (yes/no): yes, but then command will not work

My configuration (output of beet config) is:

@sampsyo sampsyo added the bug bugs that are confirmed and actionable label Aug 26, 2017
@sampsyo
Copy link
Member

sampsyo commented Aug 26, 2017

Thanks for reporting. Unicode on Windows under Python 3 can be tricky…

I've pushed a change that should fix this. Can you please pull the latest source and check that it actually addressed the problem for you?

@arogl
Copy link
Contributor Author

arogl commented Aug 26, 2017

This is working.

I'll have a look through other code where path is mentioned to see if it needs a similar fix.

@sampsyo
Copy link
Member

sampsyo commented Aug 26, 2017

Great; thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug bugs that are confirmed and actionable
Projects
None yet
Development

No branches or pull requests

2 participants