#File Error: Default does not exist audio_codec.yml. Metadata File Failed to Load

1 messages · Page 1 of 1 (latest)

cold shell
#

When calling "- pmm: audio_codec" in my config.yml the meta.log is showing the error:

Loading Metadata PMM Default: audio_codec
File Error: Default does not exist audio_codec.yml
Metadata File Failed to Load

I'm using the Docker image "meisnate12/plex-meta-manager" image downloaded to a QNAP NAS.

Version: 1.19.1 (Docker)
PlexAPI library version: 4.15.2
Platform: Linux-5.10.60-qnap-x86_64-with-glibc2.28

I've pulled a new image several times and that didn't have any impact.

According to https://metamanager.wiki/en/latest/defaults/overlays/audio_codec.html audio_codec is a default overlay file, I have a Plex Pass, and to my understanding I'm following the correct naming conventions. Everything else with the config is working propely.

I could use some help troubleshooting this one.

sharp coralBOT
#

Welcome @cold shell!

Someone from <@&938443185347244033> will assist when they're available.

Including the meta.log from the beginning is a huge help, type !logs for more information.

#

You can press the "Close Post" button above or type /close at any time to close this post.

crisp violet
#

!logs

#

!logs

#

!log

cold shell
#

!logs

#

Feeling dumb. The Luma Bot tells me to type !logs for more information - so I do that, and all that does is add another comment.

fluid cairn
#

Bot/command doesn't seem to be working, basically drop your entire meta.log where the issue is happening here and someone will be able to get a better idea of what is going on 🙂

late viperBOT
#

1: Go to your config folder

2: Go into the logs folder

3: Look for meta.log (not meta.1.log etc)

4: Drag it in the Discord thread - the whole thing, DO NOT EDIT IT

5: Still confused? ¯\(ツ)

Log file too big? USE PASTEBIN or ZIP THE FILE

cold shell
#

Sorry I'm learning as I go. I fixed the "File Error: File does not exist /config/overlays/4K.yml" which was due to a typo with capitalization.

sudden token
#

There's a bunch wrong here:

 libraries:
   Movies:
     metadata_path:
       - file: config/movies_imdb.yml
       - file: config/movies_tmdb.yml
       - file: config/movies-rotten.yml
       - file: config/movies-trakt.yml
       - file: config/collections.yml
       - pmm: separator_chart
       - pmm: flixpatrol
         template_variables:
           location:united_states

these next two are overlays, but you have them under metadata_paths:

       - pmm: audio_codec
         template_variables:
           style: standard
       - pmm: ratings
         template_variables:
           rating1: critic
           rating2: audience
           rating3: user
           rating1_image: imdb
           rating2_image: rt_popcorn
           rating3_image: tmdb

operations doesn't belong here under metadata_paths:

           mass_critic_rating_update: imdb
           mass_audience_rating_update: mdb_tomatoesaudience
           mass_user_rating_update: tmdb
           mass_episode_critic_rating_update: imdb
           mass_episode_audience_rating_update: tmdb

Again, these are overlays, but you have them under metadata_paths:

       - file: config/overlays/IMDBrating_overlays.yml
       - file: config/overlays/imdb_top_250.yml
       - pmm: franchise
       - pmm: universe
       - pmm: content_rating_us
       - pmm: resolution
       - pmm: studio

And then here's a duplicate copy of audio_codec:

     overlay_path:
       - remove_overlays: false # Set this to true to remove all overlays
       - pmm: audio_codec
#

this movies section should look like:

 libraries:
   Movies:
     metadata_path:
       - file: config/movies_imdb.yml
       - file: config/movies_tmdb.yml
       - file: config/movies-rotten.yml
       - file: config/movies-trakt.yml
       - file: config/collections.yml
       - pmm: separator_chart
       - pmm: flixpatrol
         template_variables:
           location:united_states
       - pmm: franchise
       - pmm: universe
       - pmm: content_rating_us
       - pmm: resolution
       - pmm: studio
     overlay_path:
       - remove_overlays: false # Set this to true to remove all overlays
       - pmm: audio_codec
         template_variables:
           style: standard
       - pmm: ratings
         template_variables:
           rating1: critic
           rating2: audience
           rating3: user
           rating1_image: imdb
           rating2_image: rt_popcorn
           rating3_image: tmdb
       - file: config/overlays/IMDBrating_overlays.yml
       - file: config/overlays/imdb_top_250.yml
     operations:
       mass_critic_rating_update: imdb
       mass_audience_rating_update: mdb_tomatoesaudience
       mass_user_rating_update: tmdb
       mass_episode_critic_rating_update: imdb
       mass_episode_audience_rating_update: tmdb
#

TV has similar problems:

   TV Shows: # TV Shows Library
     overlay_path:
       - remove_overlays: false # Set this to true to remove all overlays
     metadata_path:
       - file: config/show/imdb_top250.yml
       - file: config/collections.yml
       - pmm: tmdb
       - pmm: network
       - pmm: streaming
       - pmm: studio
       - pmm: separator_chart
       - pmm: ratings
         template_variables:
           rating1: critic
           rating2: audience
           rating3: user
           rating1_image: imdb
           rating2_image: rt_popcorn
           rating3_image: tmdb
       - file: config/overlays/IMDBrating_overlays.yml
       - file: config/overlays/imdb_top_250.yml
       - pmm: ratings
         template_variables:
           builder_level: episode
           rating1: critic
           rating2: audience
           rating1_image: imdb
           rating2_image: tmdb
     operations:
       mass_critic_rating_update: imdb
       mass_audience_rating_update: mdb_tomatoesaudience
       mass_user_rating_update: tmdb
       mass_episode_critic_rating_update: imdb
       mass_episode_audience_rating_update: tmdb

Should be:

   TV Shows: # TV Shows Library
     overlay_path:
       - remove_overlays: false # Set this to true to remove all overlays
       - pmm: ratings
         template_variables:
           rating1: critic
           rating2: audience
           rating3: user
           rating1_image: imdb
           rating2_image: rt_popcorn
           rating3_image: tmdb
       - file: config/overlays/IMDBrating_overlays.yml
       - file: config/overlays/imdb_top_250.yml
       - pmm: ratings
         template_variables:
           builder_level: episode
           rating1: critic
           rating2: audience
           rating1_image: imdb
           rating2_image: tmdb
     metadata_path:
       - file: config/show/imdb_top250.yml
       - file: config/collections.yml
       - pmm: tmdb
       - pmm: network
       - pmm: streaming
       - pmm: studio
       - pmm: separator_chart
     operations:
       mass_critic_rating_update: imdb
       mass_audience_rating_update: mdb_tomatoesaudience
       mass_user_rating_update: tmdb
       mass_episode_critic_rating_update: imdb
       mass_episode_audience_rating_update: tmdb
#

The overlay files being in the wrong place is what's behind these:

 File Error: Default does not exist audio_codec.yml
 Metadata File Failed To Load

 File Error: Default does not exist ratings.yml
 Metadata File Failed To Load

Those two don't exist because they aren't metadata files, they're overlay files.

 File Loaded From: /config/overlays/IMDBrating_overlays.yml
 YAML Error: metadata, collections, or dynamic_collections attribute is required
 Metadata File Failed To Load

 File Loaded From: /config/overlays/imdb_top_250.yml
 YAML Error: metadata, collections, or dynamic_collections attribute is required
 Metadata File Failed To Load

And those two exist but don't load for the same reason.

#
   Classic Films: # Classic Films Library
     metadata_path:
     - file: config/movies_imdb.yml
     - file: config/movies_tmdb.yml
     - file: config/movies-rotten.yml
     - file: config/movies-trakt.yml
     - file: config/collections.yml
     - file: config/playlists.yml

That last line is a playlist file, not a metadata file, which results in:

 File Loaded From: /config/playlists.yml
 YAML Error: metadata, collections, or dynamic_collections attribute is required
 Metadata File Failed To Load
#

And this last overlay file is apparently malformed:

   Classic Films: # Classic Films Library
...
     overlay_path:
     - remove_overlays: false
     - file: config/overlays/IMDBrating_overlays.yml
     - file: config/overlays/imdb_top_250.yml
     - file: config/show/decades.yml

resulting in:

| Loading Overlay 2 File: config/show/decades.yml
|
| File Loaded From: /config/show/decades.yml
| File Loaded From: /defaults/overlays/templates.yml
| YAML Error: overlays attribute is required
| Overlay File Failed To Load
#

ON these:

[ERROR]    | FlixPatrol Error: https://flixpatrol.com/top10/hulu/world/2023-038/full/ failed to parse           |

flixpatrol just put nearly everything behind an expensive paywall, so you should remove the flixpatrol stuff. It's not going to work for the forseeable future.

cold shell
#

Well you are a lifesaver. Thank you. Let me dig through your comments and move stuff around in the config file

sudden token
#

Your IMDB 250 file is using a template that doesn't exist:

|                                 Running imdb_top250 Metadata File
|                                    config/show/imdb_top250.yml
...
| Collection Error: template chart_shared not found
#

You seem to have some oddball stuff in your TV library that doesn't exist on TMDB [season 3 of Cosmos 2014, for example] which is thowing errors.

#

Running this movies metadata file against a TV library is causing some errors:

|====================================== Mapping 4K TV Library
...
|                                 Running movies_imdb Metadata File
|                                       config/movies_imdb.yml
cold shell
#

This morning I woke up to find tha the TV library updated and did exactly what I needed after making all the edits you suggested. Thank you. What I'm not understanding is why did this not happen for the Movies?

#

when I compare the TV shows to the Movies, Did I put something in the wrong place again? Does the code care about order? In TV Shows I have overlay_path then pmm then metadata_path. But in Movies I start with metadata path. maybe that's in the wrong place?

sudden token
#

Order doesn’t matter provided indentation and level are correct.

cold shell
#

under Movies: metadata_path it seems I forgot to include -pmm: tmdb

#

side question - I'm using a mount path for the /config directory. When I need to update the config.yml, do I need to stop the running Container and then replace the file and restart the container or will it just pickup that a new file is there during the next run?

sudden token
#

It reads the file when it starts the run, so no need to restart the container.

sudden token
#

You're attempting to set episode-level ratings on your movie library:

 libraries:
   Movies:
...
     operations:
       mass_critic_rating_update: imdb
       mass_audience_rating_update: mdb_tomatoesaudience
       mass_user_rating_update: tmdb
       mass_episode_critic_rating_update: imdb    <<<<<<<<<<<< RIGHT HERE
       mass_episode_audience_rating_update: tmdb  <<<<<<<<<<<< AND HERE

Which is causing this critical error, which stops processing of the movie library before overlays get processed.

[INFO]     | Processing: 1/2992 The 'Burbs
[INFO]     | Batch Edits                  
           | Audience Rating | 7.1        
           | Critic Rating | 6.8          
           | User Rating | 6.8            
[DEBUG]    | Traceback (most recent call last):
           |   File "//plex_meta_manager.py", line 634, in run_libraries
           |     run_operations_and_overlays()                          
           |   File "//plex_meta_manager.py", line 580, in run_operations_and_overlays
           |     library_status[library.name]["Library Operations"] = library.Operations.run_operations()
           |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           |   File "/modules/operations.py", line 580, in run_operations
           |     for ep in item.episodes():
           |               ^^^^^^^^^^^^^   
           |   File "/usr/local/lib/python3.11/site-packages/plexapi/base.py", line 516, in __getattribute__
           |     value = super(PlexPartialObject, self).__getattribute__(attr)
           |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           | AttributeError: 'Movie' object has no attribute 'episodes'
           |
[CRITICAL] | 'Movie' object has no attribute 'episodes'
cold shell
#

man I feel so dumb sometimes with this stuff.... thank you. I've removed those two lines

#

well I've removed those two lines from all the libraries that are not TV shows

unreal stump
#

is this working now?

cold shell
#

One last question: After removing the FlixPatrol operations from the config.yml the Collections created by the FlixPatrol remain in my library. What's the best practice for removing these as they will no longer be updated by Plex meta manager? Delete them manually in Plex?

#

As to the rest of the script, yes I have it working as originally intended now and a huge THANK YOU.

cold shell
#

ok thank you! I'll close out this request now.