# Beets suddenly stopped working

**URL:** <https://discourse.beets.io/t/beets-suddenly-stopped-working/1901>\
**Category:** Help\
**Created:** [October 14, 2021, 5:21am UTC](https://discourse.beets.io/t/beets-suddenly-stopped-working/1901 "2021-10-14T05:21:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![shredder\_guitarist](https://avatars.discourse-cdn.com/v4/letter/s/22d042/32.png) [@shredder\_guitarist](https://discourse.beets.io/u/shredder_guitarist)\
**Post date:** [October 14, 2021, 5:21am UTC](https://discourse.beets.io/t/beets-suddenly-stopped-working/1901/1 "2021-10-14T05:21:22Z")

</div>

This was working fine for me for a few days up until about 10 minutes ago. I have tried restarting, uninstalling beets, python 3.10 and 2.7 (should have been running against 3.10) removing and re-adding environment variables…nothing seems to work…I’m at a loss here (and partiallly in panic mode so i may not have thought of everything, but hoping someone can look at this error output that i get when running literally any beets command and maybe tell me what’s happening…it looks like a script error, but i would think reinstalling would fix that, but it does not.

```auto
beet config -p
Traceback (most recent call last):
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\Scripts\beet-script.py", line 33, in <module>
    sys.exit(load_entry_point('beets==1.5.0', 'console_scripts', 'beet')())
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\ui\ __init__.py", line 1291, in main
    _raw_main(args)
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\ui\ __init__.py", line 1274, in _raw_main
    subcommands, plugins, lib = _setup(options, lib)
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\ui\ __init__.py", line 1153, in _setup
    plugins = _load_plugins(options, config)
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\ui\ __init__.py", line 1139, in _load_plugins
    plugins.send("pluginload")
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\plugins.py", line 497, in send
    for handler in event_handlers()[event]:
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\plugins.py", line 480, in event_handlers
    for plugin in find_plugins():
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beets\plugins.py", line 315, in find_plugins
    _instances[cls] = cls()
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beetsplug\lyrics.py", line 736, in __init__
    sources = self.sanitize_bs_sources(sources)
  File "C:\Users\Andrew Sutcliffe\AppData\Local\Programs\Python\Python310\lib\site-packages\beetsplug\lyrics.py", line 763, in sanitize_bs_sources
    if source.REQUIRES_BS:
AttributeError: 'str' object has no attribute 'REQUIRES_BS'

```

---

<div class="post-metadata">

**Author:** ![shredder\_guitarist](https://avatars.discourse-cdn.com/v4/letter/s/22d042/32.png) [@shredder\_guitarist](https://discourse.beets.io/u/shredder_guitarist)\
**Post date:** [October 14, 2021, 5:42am UTC](https://discourse.beets.io/t/beets-suddenly-stopped-working/1901/2 "2021-10-14T05:42:19Z")

</div>

ok, After i disabled all the plugins and re-enabled one by one, I found out that it’s the “lyrics” plugin that is having an issue, who supports this plugin?

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [October 14, 2021, 11:56am UTC](https://discourse.beets.io/t/beets-suddenly-stopped-working/1901/3 "2021-10-14T11:56:14Z")

</div>

This bug was recently fixed on master:

> <https://github.com/beetbox/beets/issues/4027>
>
> \### Problem
> The Lyrics plugin throws an error/crashes when ran without Beautifu…lSoup installed.
> 
> \### Terminal output
> \_I currently can't run a verbose command because Beets is dragging itself through finding lyrics for many many albums.\_
> 
> The following error is displayed in Terminal when running:
> \`\`\`
> $ beets lyrics artist song
> /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/util/confit.py:21: UserWarning: beets.util.confit is deprecated; use confuse instead
> warnings.warn("beets.util.confit is deprecated; use confuse instead")
> Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/3.7/bin/beet", line 11, in \<module\>
> load\_entry\_point('beets==1.5.0', 'console\_scripts', 'beet')()
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/\_\_init\_\_.py", line 1291, in main
> \_raw\_main(args)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/\_\_init\_\_.py", line 1274, in \_raw\_main
> subcommands, plugins, lib = \_setup(options, lib)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/\_\_init\_\_.py", line 1153, in \_setup
> plugins = \_load\_plugins(options, config)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/\_\_init\_\_.py", line 1139, in \_load\_plugins
> plugins.send("pluginload")
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/plugins.py", line 497, in send
> for handler in event\_handlers()\[event\]:
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/plugins.py", line 480, in event\_handlers
> for plugin in find\_plugins():
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/plugins.py", line 315, in find\_plugins
> \_instances\[cls\] = cls()
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beetsplug/lyrics.py", line 736, in \_\_init\_\_
> sources = self.sanitize\_bs\_sources(sources)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beetsplug/lyrics.py", line 763, in sanitize\_bs\_sources
> if source.REQUIRES\_BS:
> AttributeError: 'str' object has no attribute 'REQUIRES\_BS'
> \`\`\`\`\`\`
> 
> After installing BeautifulSoup the output is
> \`\`\`
> /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/util/confit.py:21: UserWarning: beets.util.confit is deprecated; use confuse instead
> warnings.warn("beets.util.confit is deprecated; use confuse instead")
> \`\`\`
> 
> Andrew writes:
> \> We're supposed to silently fix up the configuration when BeautifulSoup is not installed; not crash with a traceback. Glancing at the code, I do see the mistake.
> 
> \### Setup
> 
> \* OS: macOS 10.13.6
> \* Python version: 3.7
> \* beets version: 1.5
> \* Turning off plugins made problem go away (yes/no):  
> 
> My configuration (output of \`beet config\`) is:
> 
> \`\`\`yaml
> library: ~/Music/Beets/musiclibrary.db
> directory: /Volumes/Tunez
> 
> import:
> write: yes
> copy: yes
> move: no
> link: no
> hardlink: no
> delete: no
> resume: ask
> incremental: no
> incremental\_skip\_later: no
> from\_scratch: no
> quiet\_fallback: skip
> none\_rec\_action: ask
> timid: no
> log:
> autotag: yes
> quiet: no
> singletons: no
> default\_action: apply
> languages: \[\]
> detail: no
> flat: no
> group\_albums: no
> pretend: false
> search\_ids: \[\]
> duplicate\_action: remove
> bell: no
> set\_fields: {}
> 
> clutter: \["Thumbs.DB", ".DS\_Store"\]
> ignore: \[".\*", "\*~", "System Volume Information", "lost+found"\]
> ignore\_hidden: yes
> 
> replace:
> '\[\\\\/\]': \_
> '^\\.': \_
> '\[\\x00-\\x1f\]': \_
> '\[\<\>:"\\?\\\*\\|\]': ''
> '\\.$': \_
> '\\s+$': ''
> '^\\s+': ''
> '^-': \_
> path\_sep\_replace: \_
> asciify\_paths: false
> art\_filename: cover
> max\_filename\_length: 0
> 
> aunique:
> keys: albumartist album
> disambiguators: albumtype year samplerate label catalognum albumdisambig releasegroupdisambig
> bracket: '()'
> 
> plugins: 
> - inline
> - the
> - lastgenre
> - discogs
> - chroma
> - acousticbrainz
> - fromfilename
> - fetchart
> - embedart
> - ftintitle
> - edit
> - info
> - missing
> - types
> - convert
> - plexupdate
> - web
> - unimported
> - keyfinder
> - fuzzy
> - spotify
> - describe
> - bpmanalyser
> - lyrics
> \# - smartplaylist
> \# - goingrunning
> pluginpath: 
> - /Users/xxxxxxxx/Documents/BeetsPluginDescribe/beetsplug
> threaded: yes
> timeout: 5.0
> per\_disc\_numbering: no
> verbose: 0
> terminal\_encoding:
> original\_date: no
> artist\_credit: no
> id3v23: no
> va\_name: "Various Artists"
> 
> zero:
> fields: comments
> update\_database: true
> 
> \# Inline plugin template
> item\_fields:
> multidisc: 1 if disctotal \> 1 else 0
> my\_samplerate: round(samplerate / 1000)
> is\_flac: 1 if format == "FLAC" else 0
> album\_fields:  
> format: |
> formatList = \[\]
> for item in items:
> formatList.append(item.format)
> return formatList
> av\_bitrate: |
> total = 0
> for item in items:
> total += item.bitrate
> return round(total / len(items) / 1000)
> album\_bitdepth: |
> total = 0
> for item in items:
> total += item.bitdepth
> return round(total / len(items))
> album\_samplerate: |
> total = 0
> for item in items:
> total += item.samplerate
> return round(total / len(items) / 1000)
> is\_1644: |
> bd = 0
> sr = 0
> br = 0
> for item in items:
> bd += item.bitdepth
> sr += item.samplerate
> br += item.bitrate
> bd = round(bd / len(items))
> sr = round(sr / len(items) / 1000)
> br = round(br / len(items) / 1000)
> return 1 if bd == 16 and sr == 44 and br \> 320 else 0
> 
> ui:
> terminal\_width: 80
> length\_diff\_thresh: 10.0
> color: yes
> colors:
> text\_success: green
> text\_warning: yellow
> text\_error: red
> text\_highlight: red
> text\_highlight\_minor: lightgray
> action\_default: turquoise
> action: blue
> 
> format\_item: $artist - $album - $title
> format\_album: $albumartist - $album
> time\_format: '%Y-%m-%d %H:%M:%S'
> format\_raw\_length: no
> 
> sort\_album: albumartist+ album+
> sort\_item: artist+ album+ disc+ track+
> sort\_case\_insensitive: yes
> 
> paths:
> \# default: 'Albums/%the{$albumartist}/$album (%if{$original\_year,$original\_year}) %aunique{albumartist album year, albumdisambig}%if{$albumdisambig,($albumdisambig $year) }%if{$is\_1644,,%if{$is\_flac,($format $bitdepth-$album\_samplerate),($format $av\_bitrate)}}/%if{$multidisc,$disc-}$track - $title'
> default: 'Albums/%the{$albumartist}/%if{$original\_year,$original\_year} - $album %aunique{albumartist album year, albumdisambig}%if{$albumdisambig,($albumdisambig $year) }%if{$is\_1644,,%if{$is\_flac,($format $album\_bitdepth-$album\_samplerate),($format $av\_bitrate)}}/%if{$multidisc,$disc-}$track - $title'
> dancetrack:1: 'Singles Dance/$artist - $title (%if{$original\_year,$original\_year}) %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig$ $year)}($bpm bpm)'
> artistsingles:1: 'Albums/%the{$albumartist}/$album/$title'
> custcomp:1: 'Compilations/$album/$track - $artist - $title'
> custcompmin:1: 'Compilations/$album/$artist - $title'
> singleton: 'Singles/$artist - $title %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig$ $year)}'
> comp: 'Albums/%the{$albumartist}/$album (%if{$original\_year,$original\_year}) %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig $year) }%if{$is\_1644,,%if{$is\_flac,($format $bitdepth-$album\_samplerate),($format $av\_bitrate)}}/%if{$multidisc,$disc-}$track - $artist - $title'
> 
> 
> statefile: state.pickle
> 
> musicbrainz:
> host: musicbrainz.org
> ratelimit: 1
> ratelimit\_interval: 1.0
> searchlimit: 5
> 
> match:
> strong\_rec\_thresh: 0.04
> medium\_rec\_thresh: 0.25
> rec\_gap\_thresh: 0.25
> max\_rec:
> missing\_tracks: medium
> unmatched\_tracks: medium
> distance\_weights:
> source: 2.0
> artist: 3.0
> album: 3.0
> media: 1.0
> mediums: 1.0
> year: 1.0
> country: 0.5
> label: 0.5
> catalognum: 0.5
> albumdisambig: 0.5
> album\_id: 5.0
> tracks: 2.0
> missing\_tracks: 0.9
> unmatched\_tracks: 0.6
> track\_title: 3.0
> track\_artist: 2.0
> track\_index: 1.0
> track\_length: 2.0
> track\_id: 5.0
> preferred:
> countries: \[\]
> media: \['Digital Media|File' , 'CD'\]
> original\_year: no
> ignored: \[\]
> required: \[\]
> ignored\_media: \[\]
> ignore\_data\_tracks: yes
> ignore\_video\_tracks: yes
> track\_length\_grace: 10
> track\_length\_max: 30
>     
> chroma:
> auto: no
>     
> fetchart:
> auto: yes
> cautious: no
> cover\_names: cover front art album folder
> minwidth: 290
> maxwidth: 1050
> sources: itunes amazon albumart lastfm fanart filesystem coverart 
> fanarttv\_key: xxxxxxxxxxxxx
> lastfm\_key: xxxxxxxxxxxx
>     
> acoustid: 
> apikey: xxxxxxxxx
>    
> embedart:
> auto: yes
> ifempty: no   
>     
> lastgenre:
> auto: yes
> canonical: no
> count: 1
> force: yes
> source: album
> whitelist: yes
> min\_weight: 10
> fallback:
> separator: ', '
> prefer\_specific: no
>     
> types:
> av\_bitrate: int
> my\_samplerate: int
> bitdepth: int
> album\_bitdepth: int
> album\_samplerate: int
> rating: int
>     
> convert:
> dest: ~/Music/BeetExports
> command: ffmpeg -i $source -y -vn -aq 0 $dest    
> extension: mp3
> format: mp3
> never\_convert\_lossy\_files: yes
> 
> plex:
> host: localhost
> port: 32400
> token: xxxxxxxxxxxxxx
>     
> lastfm:
> user: xxxxxxxxxx
>     
> smartplaylist:
> playlist\_dir: /Users/Shared/Music/Playlists
> auto: no
> playlists:
> - name: 'favorites.m3u' 
> query: rating:4..5
> - name: 'danceable.m3u'
> query: 
> - danceable:0.8..
> - name: 'acoustic.m3u'
> query: 
> - mood\_acoustic:0.8..
> - name: 'aggresive.m3u'
> query: 
> - mood\_aggresive:0.8..
> - name: 'electronic.m3u'
> query: 
> - mood\_electronic:0.8..
> - name: 'danceable.m3u'
> query: 
> - danceable:0.8..
> - name: 'happy.m3u'
> query: 
> - mood\_happy:0.8..           
> - name: 'party.m3u'
> query: 
> - mood\_party:0.8.. 
> - name: 'relaxed.m3u'
> query: 
> - mood\_relaxed:0.8..                   
> - name: 'sad.m3u'
> query: 
> - mood\_sad:0.8..
> 
> spotify:
> mode: list
> show\_failures: on
> tiebreak: first
>     
> bpmanalyser:
> auto: no
> dry-run: no
> write: yes
> force: no
> quiet: no
>     
> goingrunning:
> targets:
> subsonic\_m3u:
> device\_root: /Users/Shared/Music/Playlists
> device\_path: 
> clean\_target: yes
> generate\_playlist: yes
> copy\_files: no
> trainings:
> 10K:
> use\_flavours: \[intensity\_low, intensity\_high, running\]
> duration: 180
> target: subsonic\_m3u
> flavours:
> intensity\_low:
> bpm: 87..88
> intensity\_high:
> bpm: 175..177
> running:
> genre: \[electronic, hip hop, funk, trip hop, house\]
> 
> web:
> host: 0.0.0.0
> cors: 'http://localhost:3000'
>     
> lyrics:
> auto: yes
> google\_API\_key: xxxxxxxxxxxxxxxxx
> google\_engine\_ID: 009217259823014548361:lndtuqkycfu
>     
> unimported:
> ignore\_extensions: mid wav
> \`\`\`

---

<div class="post-metadata">

**Author:** ![shredder\_guitarist](https://avatars.discourse-cdn.com/v4/letter/s/22d042/32.png) [@shredder\_guitarist](https://discourse.beets.io/u/shredder_guitarist)\
**Post date:** [October 14, 2021, 7:00pm UTC](https://discourse.beets.io/t/beets-suddenly-stopped-working/1901/4 "2021-10-14T19:00:30Z")

</div>

Works like a dream now! Man you guys are awesome!
