User Tools

Site Tools


config:beets

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
config:beets [2024/03/25 20:41] – [importreplace] Wuffconfig:beets [2025/12/08 14:04] (current) – [Beets tips] Wuff
Line 7: Line 7:
 <code> <code>
 #mint21 #mint21
-sudo apt-get install libchromaprint1 +sudo apt-get install libchromaprint1 mp3val flac python3-acoustid
-sudo apt-get install mp3val +
-sudo apt-get install python3-acoustid+
 sudo apt-get remove python-pip sudo apt-get remove python-pip
 sudo apt-get install python3-setuptools sudo apt-get install python3-setuptools
Line 20: Line 18:
 pip install https://github.com/ocelma/python-itunes/archive/master.zip pip install https://github.com/ocelma/python-itunes/archive/master.zip
 pip install discogs-client pip install discogs-client
-pip install beets-web-import 
 pip install python3-discogs-client pip install python3-discogs-client
 +# see notes below to patch copyartifacts
 pip install beets-copyartifacts pip install beets-copyartifacts
 +
 +#Buggy as of 19/Sept/2020:
 +pip install beets-copyartifacts3
 +pip install beets-extrafiles
 +
 +#Mint22:
 +sudo apt-get install python3-acoustid libchromaprint1 mp3val flac
 +pipx install beets
 +pipx inject beets discogs_client requests pylast pyacoustid pycairo pygobject python3-discogs-client discogs-client beets-copyartifacts beets-extrafiles
 +pipx inject beets beets-yearfixer
 +pipx inject beets git+https://github.com/edgars-supe/beets-importreplace.git
 +#for lyrics plugin:
 +pipx inject beets langdetect bs4
 +pipx inject beets beets[kodiupdate]
 +
 +</code>
 +
 +to upgrade beets going forward, use:
 +<code>
 +pip install -U beets
 +</code>
 +
 +As beets 1.6.0 is a bit buggy and 3 years old, use latest source snapshot tarball installation:
 +<code>
 +pip uninstall beets
 +pip install https://github.com/beetbox/beets/tarball/master
 +</code>
 +
 +Uninstall plugins from pipx:
 +<code>
 +Show all pipx envs and injected packages to find exact package names
 +pipx list --include-injected
 +
 +then run:
 +pipx uninject beets beets-web-import
 +</code>
 +
 +====== shell completion ======
 +add to .bashrc or similar:
 +<code>
 +eval "$(beet completion)"
 +</code>
 +
 +====== copyartifacts python3 patch ======
 +<code>
 2to3-2.7 -w ~/.local/lib/python3.10/site-packages/beetsplug/copyartifacts.py 2to3-2.7 -w ~/.local/lib/python3.10/site-packages/beetsplug/copyartifacts.py
  
-#adjust as following:+#Mint22: 
 +sudo apt-get install 2to3 
 +2to3 -w ~/.local//share/pipx/venvs/beets/lib/python3.12/site-packages/beetsplug/copyartifacts.py 
 +</code> 
 +then adjust as following: 
 +<code>
 #line 104: #line 104:
                 file_ext = os.path.splitext(filename)[1].decode('utf8')                 file_ext = os.path.splitext(filename)[1].decode('utf8')
Line 37: Line 85:
 #add line 127 #add line 127
                 dest_file = beets.util.bytestring_path(dest_file)                 dest_file = beets.util.bytestring_path(dest_file)
- 
- 
-vi ~/.local/lib/python3.10/site-packages/beets/autotag/__init__.py 
-change line 75 from 
-def unidecode_punc_only(text): 
-to 
-def unicode_punc_only(text): 
- 
- 
- 
-#Buggy as of 19/Sept/2020: 
-pip install beets-copyartifacts3 
-pip install beets-extrafiles 
 </code> </code>
- +Change the init:
-to upgrade beets going forward, use:+
 <code> <code>
-pip install -beets+vi ~/.local/lib/python3.10/site-packages/beets/autotag/__init__.py
 </code> </code>
- 
-As beets 1.6.0 is a bit buggy and 3 years old, use latest source snapshot tarball installation: 
 <code> <code>
-pip uninstall beets +#change line 75 from 
-pip install https://github.com/beetbox/beets/tarball/master+def unidecode_punc_only(text): 
 +#to 
 +def unicode_punc_only(text):
 </code> </code>
- 
  
 ====== Unicode in Tag Patch ====== ====== Unicode in Tag Patch ======
Line 175: Line 208:
  
 If you want a temporary configuration for any reason, you can always use ''beet -c /path/to/file.yaml'' instead of copying around files. If you want a temporary configuration for any reason, you can always use ''beet -c /path/to/file.yaml'' instead of copying around files.
 +
 +
 +===== Custom Compilation Workflow =====
 +
 +  * beet import folder and Use as-is. Beets detects this is a “Various Artists” Compilation and stores this information in the database, but does not write the information to the files.
 +  * beet write writes “Various Artists” to the files and the album/compilation name of the first track and actually sets the comp flag to True
 +  * beet modify -a album="Compilation_name"  various artists album_name updates the compilation name
 +
  
 ====== Config File ====== ====== Config File ======
Line 235: Line 276:
  
 # files matching these patterns are deleted from source after import # files matching these patterns are deleted from source after import
-clutter: ["Thumbs.DB", ".DS_Store", "desktop.ini", "*.m3u", "*.nfo", "*.pls", "*.torrent"]+clutter: ["Thumbs.DB", ".DS_Store", "desktop.ini", "*.m3u", "*.nfo", "*.pls", "*.torrent", "cover.jpg"]
 # files/directories matching one of these patterns are ignored during import # files/directories matching one of these patterns are ignored during import
 ignore: [".*", "*~", "System Volume Information", "lost+found", "cover.jpg"] ignore: [".*", "*~", "System Volume Information", "lost+found", "cover.jpg"]
Line 279: Line 320:
   track: []   track: []
  
-plugins: [fetchart,lyrics,lastgenre,embedart,bucket,the,chroma,ftintitle,discogs,scrub,inline,fromfilename,edit,importadded,duplicates,replaygain,web,bpd,webimport,yearfixer,zero,badfiles,importreplace]+plugins: [substitute,musicbrainz,fetchart,lyrics,lastgenre,embedart,bucket,the,chroma,ftintitle,discogs,scrub,inline,fromfilename,edit,importadded,duplicates,replaygain,bpd,yearfixer,zero,badfiles,importreplace,fuzzy,deezer,kodiupdate]
 #copyartifacts broken #copyartifacts broken
 pluginpath: [] pluginpath: []
Line 459: Line 500:
     #Note this takes about 10 seconds for 7 files which is about 6h for 15k songs.     #Note this takes about 10 seconds for 7 files which is about 6h for 15k songs.
        
-web: 
-    host: 0.0.0.0 
-    port: 8337 
- 
-webimport: 
-    host: 0.0.0.0 
-    port: 8338 
- 
 bpd: bpd:
     host: 127.0.0.1     host: 127.0.0.1
Line 475: Line 508:
 acoustid: acoustid:
     apikey: 9NQqkUUg6p     apikey: 9NQqkUUg6p
 +
 +kodi:
 +    host: 192.168.1.11
 +    port: 8080
 +    user: kodi
 +    pwd: kodi
  
 # null/remove specific tag fields on import (not when importing as-is) # null/remove specific tag fields on import (not when importing as-is)
Line 530: Line 569:
 beet import -A -C -W -I -s /media/music/beets2/Non-Album/ beet import -A -C -W -I -s /media/music/beets2/Non-Album/
 </code> </code>
 +Update id3 tags after changing db 
 +<code> 
 +beet write 
 +</code>
 ====== Addons ====== ====== Addons ======
  
Line 537: Line 579:
 https://amp.reddit.com/r/airsonic/comments/f1yb86/beets_plugin_for_trigger_library_update/ https://amp.reddit.com/r/airsonic/comments/f1yb86/beets_plugin_for_trigger_library_update/
  
-Web Import: 
-<code> 
-pip install beets-webimport 
-</code> 
-~/.local/lib/python3.10/site-packages/beetsplug/webimport 
  
 ====== Submit album to MusicBrainz ====== ====== Submit album to MusicBrainz ======
Line 559: Line 596:
   - Submit the edit.   - Submit the edit.
 After a few moments, try re-tagging the album with beets. If everything worked properly, beets should find the release you contributed and finish tagging it. Repeat this process for any albums you wish to add to MusicBrainz. After a few moments, try re-tagging the album with beets. If everything worked properly, beets should find the release you contributed and finish tagging it. Repeat this process for any albums you wish to add to MusicBrainz.
- 
- 
-====== beets web ====== 
- 
-depends on flask 
-<code> 
-pip install flask 
-</code> 
- 
-add web to plugins in beets config.yaml 
-Define port in [web] section 
-<code> 
-[web] 
-host: 127.0.0.1 #or 0.0.0.0 
-port: 8337 
-</code> 
- 
-for a remote web interface, CORS is required 
-<code> 
-pip install flask-cors 
-</code> 
- 
-start server on localhost:8337 using 
-<code> 
-beet web 
-</code> 
-or 
-<code> 
-beet web hostname port 
-</code> 
- 
- 
-https://github.com/irskep/summertunes 
  
  
Line 643: Line 647:
 ====== Puddletag ====== ====== Puddletag ======
 ID3 Tag editor with embed cover support ID3 Tag editor with embed cover support
 +
 +https://docs.puddletag.net/index.html
 +
 <code> <code>
-sudo add-apt-repository ppa:ubuntuhandbook1/apps 
-sudo apt-get update 
 sudo apt-get install puddletag sudo apt-get install puddletag
 </code> </code>
config/beets.1711399311.txt.gz · Last modified: by Wuff