[RELEASE] Movie Set Artwork Automator

  Thread Rating:
  • 3 Votes - 4.67 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
saitoh183 Offline
Posting Freak
Posts: 957
Joined: Jul 2011
Reputation: 15
Location: Canada
Post: #31
im in the process of switching over to MySQL and i had to do lots of editing directly in MySQL (damn backslashes Smile ) and when i got to the Art Table i noticed that after the initial first scan of my library, all sets where there posters and fanart alike. So thats odd that you didnt have it after first movie scan when adding new source. Maybe its because you didnt turn on show movieset in the xbmc settings before doing the first scan when you add a new source?

[Image: watched-clearlogo.jpg]

If my replies help you, please click on my reputation [Image: rep_xbmc.JPG] below :) thanks :)
find quote
Milhouse Offline
Team-XBMC Member
Posts: 3,536
Joined: Jan 2011
Reputation: 87
Post: #32
Oops, duplicate post - apologies.

Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
(This post was last modified: 2013-01-30 08:48 by Milhouse.)
find quote
Tomkun Offline
Fan
Posts: 568
Joined: Jul 2004
Reputation: 4
Location: Japan
Post: #33
Well now here's a weird thing.

I navigated to the folder shown in the log file to delete those thumbs as suggested, but the kicker is, those directories do not exist. The Thumbnails folder exists and the Video subfolder exists but that is all. Moreover, there is not a single tbn file in the thumbnail directory, all are either .jpg or .png.

Even weirder, there is no 'ad882f00' file of any format.

I'm thinking that now Frodo has been released officially I'll download the stable version and start from scratch.
find quote
trentf Offline
Member
Posts: 57
Joined: Jan 2013
Reputation: 5
Location: Australia
Post: #34
Tomkun, I think your problem with poster art was most likely the same as saitoh183, updating the wrong type in the DB. If you can hold out, I am just testing the fix with the latest stable Frodo release and will release a new version in the next few hours.
find quote
trentf Offline
Member
Posts: 57
Joined: Jan 2013
Reputation: 5
Location: Australia
Post: #35
New version uploaded.

The lenient file match works such that anything non-alphanumeric will be ignored. So for "Mission: Impossible Collection", with thumb filename as default and include subfolders enabled, the following files will match:
- <base>\Mission Impossible Collection folder.jpg
- <base>\Mission Impossible Collection - folder.JPG
- <base>\poster\Mission Impossible Collection_folder.jpg

If anyone is still having trouble with the script finding artwork, let me know.
find quote
keisuji Online
Member
Posts: 69
Joined: Sep 2011
Reputation: 0
Post: #36
Hi I tried your script it looks like working after I set all up and run it it says that 4 movie sets are updated but it do not update the set artwork for me its still the same.
Im using one big folder for all my set artwork.

Frodo Final build ,AeonMQ4, Movie Set Artwork Automator Version 0.1.2
all my movie are on my nas and i use mysql.

Here is an example of my file structure
SetName in db is Alien Total Destruction Collection

Setsimages/Alien Total Destruction Collection-folder.jpg
Setsimages/Alien Total Destruction Collection-fanart.jpg
Setsimages/....(other Set Artwork)

debug log part

16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - ------------------------------------------------------------
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Processing movie set: Alien Total Destruction Collection
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - ------------------------------------------------------------
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Existing cached thumb: C:\Users\htpc\AppData\Roaming\XBMC\userdata\Thumbnails\Video\d\dd099d55.tbn
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Existing fanart: C:\Users\htpc\AppData\Roaming\XBMC\userdata\Thumbnails\Video\Fanart\dd099d55.tbn​
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Found thumbnail: Y:\MIss\Alien Total Destruction Collection-folder.jpg
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Updating video database for set 3
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Existing art: [u'fanart', u'poster']
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Updating artwork:
Type: poster
File: Y:\MIss\Alien Total Destruction Collection-folder.jpg
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Found fanart: Y:\MIss\Alien Total Destruction Collection-fanart.jpg
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Updating video database for set 3
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Existing art: [u'fanart', u'poster']
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - Updating artwork:
Type: fanart
File: Y:\MIss\Alien Total Destruction Collection-fanart.jpg
16:08:24 T:2084 DEBUG: [Movie Set Artwork Automator (Frodo)] - ------------------------------------------------------------
(This post was last modified: 2013-01-30 17:12 by keisuji.)
find quote
Tomkun Offline
Fan
Posts: 568
Joined: Jul 2004
Reputation: 4
Location: Japan
Post: #37
It is working for me now, thank you very much for the script and diligent updates!
find quote
Milhouse Offline
Team-XBMC Member
Posts: 3,536
Joined: Jan 2011
Reputation: 87
Post: #38
When first running this, it prompts "Overwrite existing movie set artwork?" - I think you should word this to make it clear the add-on will only be overwriting the "sets" artwork already scanned into the database and will not be overwriting the artwork on the movie source (ie. NAS etc.)

I'm running this on a Raspberry Pi (512MB) using OpenELEC, a remote MySQL database (scraped with Universal Scraper), and I get the following exception:

Code:
17:06:35 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - ############################################################
17:06:35 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    Movie Set Artwork Automator (Frodo)                   #
17:06:35 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    script.moviesetart                                    #
17:06:35 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    Trent Fitzgibbon                                      #
17:06:36 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    0.1.2                                                 #
17:06:36 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #                                                          #
17:06:36 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    Thanks to Frost (passion-xbmc.org) for example        #
17:06:36 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - #    code used in this addon                               #
17:06:36 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - ############################################################
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Search common folders: 1
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Enable artwork folder: 0
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Artwork folder:
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Include sub folders: 0
17:06:36 T:3043512320   DEBUG: ------ Window Deinit () ------
17:06:36 T:3043512320   DEBUG: ------ Window Init () ------
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Thumb filename: folder.jpg
17:06:36 T:2950960224   DEBUG: [Movie Set Artwork Automator (Frodo)] - Fanart filename: fanart.jpg
17:06:36 T:3043512320   DEBUG: ------ Window Deinit () ------
17:06:36 T:3043512320   DEBUG: ------ Window Init () ------
17:06:37 T:2950960224   DEBUG: LocalizeStrings: no strings.po file exist at /storage/.xbmc/addons/script.moviesetart.frodo/resources/language/English, fallback to strings.xml
17:06:37 T:3043512320   DEBUG: ------ Window Init (DialogYesNo.xml) ------
17:06:38 T:3043512320   DEBUG: LIRC: Update - NEW at 734181:69 0 KEY_LEFT devinput (KEY_LEFT)
17:06:38 T:3043512320   DEBUG: OnKey: 169 (a9) pressed, action is Left
17:06:38 T:3043512320   DEBUG: LIRC: Update - NEW at 734391:69 0 KEY_LEFT_UP devinput (KEY_LEFT_UP)
17:07:03 T:2858677344   DEBUG: Thread Jobworker 2858677344 terminating (autodelete)
17:07:04 T:2883585120   DEBUG: Thread Jobworker 2883585120 terminating (autodelete)
17:07:11 T:3043512320   DEBUG: LIRC: Update - NEW at 767371:160 0 KEY_OK devinput (KEY_OK)
17:07:11 T:3043512320   DEBUG: OnKey: 11 (0b) pressed, action is Select
17:07:11 T:3043512320   DEBUG: LIRC: Update - NEW at 767428:160 0 KEY_OK_UP devinput (KEY_OK_UP)
17:07:11 T:3043512320   DEBUG: ------ Window Deinit (DialogYesNo.xml) ------
17:07:11 T:2950960224  NOTICE: [Movie Set Artwork Automator (Frodo)] - Updating artwork for Movie Sets
17:07:11 T:2950960224   DEBUG: DialogProgress::StartModal called
17:07:11 T:2950960224   DEBUG: ------ Window Init (DialogProgress.xml) ------
17:07:11 T:2950960224    INFO: Loading skin file: DialogProgress.xml, load type: KEEP_IN_MEMORY
17:07:11 T:2950960224  NOTICE: Unexpected error:
17:07:11 T:2950960224  NOTICE: <class 'sqlite3.OperationalError'>
17:07:11 T:2950960224   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'sqlite3.OperationalError'>
                                            Error Contents: no such table: sets
                                            Traceback (most recent call last):
                                              File "/storage/.xbmc/addons/script.moviesetart.frodo/default.py", line 245, in <module>
                                                updated_count = update_movie_sets(overwrite)
                                              File "/storage/.xbmc/addons/script.moviesetart.frodo/default.py", line 78, in update_movie_sets
                                                movie_sets = DB.getMovieSets()
                                              File "/storage/.xbmc/addons/script.moviesetart.frodo/lib/database.py", line 37, in getMovieSets
                                                cur.execute("SELECT * FROM sets")
                                            OperationalError: no such table: sets
                                            -->End of Python script error report<--
17:07:11 T:3043512320   DEBUG: ------ Window Init (DialogKaiToast.xml) ------
17:07:11 T:2950960224    INFO: Python script stopped


I can assure you that MyVideos75.sets does exist (two columns, idSet and strSet). I'm logging the queries being executed against the MySQL database and I don't see a connection being established by the addon, nor obviously a database being selected, so I'm not sure against what database this query is being executed but it doesn't look like it is MySQL.

Edit: Ah, I see the add-on has created an empty (ie. zero-byte) MyVideos75.db on local storage, completely disregarding the database settings in advancedsettings.xml. I guess this add-on isn't setup to support MySQL.

Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
find quote
saitoh183 Offline
Posting Freak
Posts: 957
Joined: Jul 2011
Reputation: 15
Location: Canada
Post: #39
I just tried the 0.1.2 and it works great with local...i havent tried it with my MySQL db yet...

[Image: watched-clearlogo.jpg]

If my replies help you, please click on my reputation [Image: rep_xbmc.JPG] below :) thanks :)
find quote
trentf Offline
Member
Posts: 57
Joined: Jan 2013
Reputation: 5
Location: Australia
Post: #40
Yes sorry guys, no MySQL support at the moment in Frodo (i will update main page). I think the Eden version should work since it goes via the HTTP API, but in Frodo I had to abandon the JSON API to get this to work, and so it is just using sqlite to talk to local video database file.
find quote
Milhouse Offline
Team-XBMC Member
Posts: 3,536
Joined: Jan 2011
Reputation: 87
Post: #41
OK thanks, hopefully you can find the time to add it soon and I'll take another look! Smile

Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
find quote
trentf Offline
Member
Posts: 57
Joined: Jan 2013
Reputation: 5
Location: Australia
Post: #42
(2013-01-31 11:13)MilhouseVH Wrote:  OK thanks, hopefully you can find the time to add it soon and I'll take another look! Smile

I found the time, and a new version is up with MySQL support. If it proves useful, feel free to rate this thread or me :-)
find quote
Milhouse Offline
Team-XBMC Member
Posts: 3,536
Joined: Jan 2011
Reputation: 87
Post: #43
Great work with the MySQL support, however while it is connecting and querying the db correctly, the add-on isn't working as expected.

It appeared to work through all the sets correctly, then displayed "0 artwork updated".

In the log, it seems to be accessing the filesystem incorrectly, always trying to find the "folder.jpg" and "fanart.jpg" in the parent of the set folder.

For example, I have three set folders as follows:

Code:
nfs://192.168.0.3/mnt/share/media/Video/Movies HD/Alien Anthology
nfs://192.168.0.3/mnt/share/media/Video/Comedy/Bill Bailey
nfs://192.168.0.3/mnt/share/media/Video/Movies/Foreign Language/Stieg Larsson Millennium Trilogy

yet the add-on is searching for folder.jpg and fanart.jpg in "Movies HD", "Comedy" and "Foreign Language", not the set folders "Alien Anthology", "Bill Bailey" and "Stieg Larsson Millennium Trilogy".

Log here: http://pastebin.ca/2309575

One question with the "common folder" technique, would the add-on need to process the individual movies if it can find a suitable folder.jpg and fanart.jpg in the set folder (as defined by the sets table)? ie. check the set folder for folder.jpg and fanart.jpg before checking any movies, and if the image(s) exist then use them and move on to the next set. Or maybe the add-on needs a third setting, "Use set tag only" and don't infer set membership from the filesystem (common parent), rely only on the metadata (database).

Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
(This post was last modified: 2013-02-01 11:43 by Milhouse.)
find quote
trentf Offline
Member
Posts: 57
Joined: Jan 2013
Reputation: 5
Location: Australia
Post: #44
(2013-02-01 11:36)MilhouseVH Wrote:  Great work with the MySQL support, however while it is connecting and querying the db correctly, the add-on isn't working as expected.

It appeared to work through all the sets correctly, then displayed "0 artwork updated".

In the log, it seems to be accessing the filesystem incorrectly, always trying to find the "folder.jpg" and "fanart.jpg" in the parent of the set folder.

For example, I have two set folders as follows:

Code:
nfs://192.168.0.3/mnt/share/media/Video/Movies HD/Alien Anthology
nfs://192.168.0.3/mnt/share/media/Video/Comedy/Bill Bailey

yet the add-on is searching for folder.jpg and fanart.jpg in "Movies HD" and "Comedy", not the set folders "Alien Anthology" and "Bill Bailey".

Log here: http://pastebin.ca/2309572

One question with the "common folder" technique, would the add-on need to process the individual movies if it can find a suitable folder.jpg and fanart.jpg in the set folder (as defined by the sets table)? ie. check the set folder for folder.jpg and fanart.jpg before checking any movies, and if the image(s) exist then use them and move on to the next set. Or maybe the add-on needs a third setting, "Use set tag only" and don't infer set membership from the filesystem (common parent), rely only on the metadata (database).

MilhouseVH, are you storing multiple movies in the same set folder? ie All alien anthology movies under a single alien anthology folder? Currently the script assumes each movie is in its own folder, below the set folder. Therefore it goes a level above the movie folder when searching for a "common" folder (a parent folder common to some/all movies that make up the set). You might want to use an artwork folder instead if that is the case.
find quote
Milhouse Offline
Team-XBMC Member
Posts: 3,536
Joined: Jan 2011
Reputation: 87
Post: #45
(2013-02-01 11:43)trentf Wrote:  MilhouseVH, are you storing multiple movies in the same set folder? ie All alien anthology movies under a single alien anthology folder?

Yes, all Alien movies are in the same "Alien Anthology" folder. I would suspect a lot of people have it this way.

(2013-02-01 11:43)trentf Wrote:  You might want to use an artwork folder instead if that is the case.

Rather than change my library, would it be possible for the add-on to respect the "set" tag? If necessary with a third search method "Scan using set folders" (or similar) as an alternative to "common parent" (which isn't now clear to me as I assumed this is what I had) and "single artwork folder".

All my nfo's have the <set> tag and so the database can tell you where the sets are - you don't need to infer it from common parents. So, if you look in the sets database table you can determine which folders are set folders, scan each folder for folder.jpg/fanart.jpg and then update the set with the new artwork.

1. Query sets
Code:
select *
from sets s join art a on (s.idSet = a.media_id)
where a.media_type='set' and a.type in ('fanart', 'poster')

then for each set...

2. Skip the set if "poster" is already set to "folder.jpg", and "fanart" set to "fanart.jpg"

3. Look in filesystem folder for the set to see if folder.jpg and fanart.jpg exist, and apply them to the set if so.

Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
(This post was last modified: 2013-02-01 12:05 by Milhouse.)
find quote
Post Reply