资源说明:script to create moviename.nfo and .tbn files from DVDProfiler exported data and IMDB data for use on XBMC
= dvdprofiler2xbmc * http://www.github.com/royw/dvdprofiler2xbmc == STATUS The initial goal of using DVD Profiler data when available along with IMDB data otherwise is met. Just added the CLI config editor. Near term plans include: * supporting multiple file matching patterns * supporting directory containers * maybe scrape posters from MoviePosterDB.com == DESCRIPTION: This script will attempt to match up media files from a set of directories to the collection.xml file exported from DVD Profiler. For matches, the script will then create a {moviename}.nfo from the data in collections.xml and also copy the front cover image to {moviename}.tbn. Both files will be placed in the same directory as the source media file. Also the specific profile information for each movie will be saved into {moviename}.dvdprofiler.xml. The script will then search IMDB for a title or also known as (AKA) match. If necessary, the script will refine the search by using the media year (year in media filename), then dvdprofiler production year, then dvdprofiler release year, then try again with each year plus or minus a year. The IMDB profile found will be saved as {moviename}.imdb.xml. Next the script will use the IMDB ID to query themovieDb.com. This is primarily to retrieve any fanart but will also add any missing parameters to the .nfo file (very unlikely). The TMDB profile found will be saved as {moviename}.tmdb.xml. So in summary the files generated are: {moviename}.tmdb.xml - profile from themovieDb.com {moviename}.imdb.xml - profile from imdb.com {moviename}.dvdprofiler.xml - profile from collection.xml {moviename}-fanart.jpg - first fanart image from themovieDb.com {moviename}.tbn - image from DVD Profiler {moviename}.nfo - generated info profile for xbmc To force regeneration, simply delete these files then run the script again. Then on XBMC, set the source content to none to remove the meta data from the library, then set the source content back to Movies to import the media. This time, the data in the .nfo files will be used instead of scraping. Note, XBMC pre-9.04 r19177 does not successfully scan all media. The work-around is after the scan is complete to restart XBMC so it will scan again (if you have autoscan enabled). == NOTES: 1) Currently only supports file based media containers, not directory based. 2) Media filename convention is to take the media's title from DVD Profiler, replace any punctuation with a space character, then replace any multiple spaces with a single space. Next remove any leading or trailing spaces. Optionally can append " - YYYY" where YYYY is the movie's release year. Naturally the extension is the media's container type. Note, you should not include in the title edition info like "Widescreen" or "Special Edition" eventhough there are some mistakes in the DVD Profiler profiles that do include these in the title. == FEATURES/PROBLEMS: Features: * On first run will launch the config editor. At a minimum you will need to set at least one media directory and the paths to DVD Profiler's exported Collection.xml and images directory must me valid. The script enforces validity by running the config editor when there is invalid data and will not let you scan your media. * Creates .nfo files from exported collection.xml from DVD Profiler and imdb.com. * If .nfo does not have antag, then tries to find the IMDB ID by using the title and production/release years to search IMDB. * Sets file permissions for files and directories * Media can be contained in a set of directories (they can be mount points) * Adds sub-directory names as genres to .nfo files * To prevent reporting missing ISBN, "touch {moviename}.no_isbn" (this is useful to ignore boxed sets) * To prevent lookup on imdb, "touch {moviename}.no_imdb_lookup" (this is useful for titles you know are not on imdb.com) * To prevent lookup on tmdb, "touch {moviename}.no_tmdb_lookup" (this is useful for titles you know are not on themovieDb.com) * DVD Profiler recently added box set support which this script does handle. Problems: * Needs to support selectable/multiple regex based naming conventions * Needs to support directory containers == SYNOPSIS: Run the program and the CLI config editor will start: # dvdprofiler2xbmc saving: /root/.dvdprofiler2xbmcrc The following config items are not valid and need to be changed: collection_filespec directories images_dir Configuration Editor Field Selection 1) quit 2) directories [] 3) subdirs_as_genres true 4) collection_filespec "~/DVD Profiler/Databases/Exports/Collection.xml" 5) images_dir "~/DVD Profiler/Databases/Exports/Images" 6) file_permissions "664" 7) dir_permissions "777" 8) genre_maps {"Anime"=>"Animation", "Science-Fiction"=>"Science Fictio... 9) media_extensions ["iso", "m4v", "mp4", "mpeg", "wmv", "asf", "flv", "mkv",... 10) image_extensions ["jpg", "jpeg", "png", "gif", "bmp", "tbn"] Please select field: 2 ------------------------------- directories Array of paths to scan for media. Replace with your paths. Default: [] Current: [] 1) quit 2) default 3) add 4) delete Please select: 3 New pathspecs or a blank line to quit: /media/royw-gentoo/public/data/movies ------------------------------- directories Array of paths to scan for media. Replace with your paths. Default: [] Current: ["/media/royw-gentoo/public/data/movies"] 1) quit 2) default 3) add 4) delete Please select: 1 Field Selection 1) quit 2) directories ["/media/royw-gentoo/public/data/movies"] 3) subdirs_as_genres true 4) collection_filespec "~/DVD Profiler/Databases/Exports/Collection.xml" 5) images_dir "~/DVD Profiler/Databases/Exports/Images" 6) file_permissions "664" 7) dir_permissions "777" 8) genre_maps {"Anime"=>"Animation", "Science-Fiction"=>"Science Fictio... 9) media_extensions ["iso", "m4v", "mp4", "mpeg", "wmv", "asf", "flv", "mkv",... 10) image_extensions ["jpg", "jpeg", "png", "gif", "bmp", "tbn"] Please select field: 4 ------------------------------- collection_filespec The location of DVD Profiler's exported Collection.xml Default: "~/DVD Profiler/Databases/Exports/Collection.xml" Current: "~/DVD Profiler/Databases/Exports/Collection.xml" 1) quit 2) default 3) edit Please select: 3 New filespec: |~/DVD Profiler/Databases/Exports/Collection.xml| /home/royw/DVD Profiler/Shared/Collection.xml ------------------------------- collection_filespec The location of DVD Profiler's exported Collection.xml Default: "~/DVD Profiler/Databases/Exports/Collection.xml" Current: "/home/royw/DVD Profiler/Shared/Collection.xml" 1) quit 2) default 3) edit Please select: 1 Field Selection 1) quit 2) directories ["/media/royw-gentoo/public/data/movies"] 3) subdirs_as_genres true 4) collection_filespec "/home/royw/DVD Profiler/Shared/Collection.xml" 5) images_dir "~/DVD Profiler/Databases/Exports/Images" 6) file_permissions "664" 7) dir_permissions "777" 8) genre_maps {"Anime"=>"Animation", "Science-Fiction"=>"Science Fictio... 9) media_extensions ["iso", "m4v", "mp4", "mpeg", "wmv", "asf", "flv", "mkv",... 10) image_extensions ["jpg", "jpeg", "png", "gif", "bmp", "tbn"] Please select field: 5 ------------------------------- images_dir The location of DVD Profiler's cover scan images. Default: "~/DVD Profiler/Databases/Exports/Images" Current: "~/DVD Profiler/Databases/Exports/Images" 1) quit 2) default 3) edit Please select: 3 New pathspec: |~/DVD Profiler/Databases/Exports/Images| /home/royw/DVD Profiler/Shared/Images ------------------------------- images_dir The location of DVD Profiler's cover scan images. Default: "~/DVD Profiler/Databases/Exports/Images" Current: "/home/royw/DVD Profiler/Shared/Images" 1) quit 2) default 3) edit Please select: 1 Field Selection 1) quit 2) directories ["/media/royw-gentoo/public/data/movies"] 3) subdirs_as_genres true 4) collection_filespec "/home/royw/DVD Profiler/Shared/Collection.xml" 5) images_dir "/home/royw/DVD Profiler/Shared/Images" 6) file_permissions "664" 7) dir_permissions "777" 8) genre_maps {"Anime"=>"Animation", "Science-Fiction"=>"Science Fictio... 9) media_extensions ["iso", "m4v", "mp4", "mpeg", "wmv", "asf", "flv", "mkv",... 10) image_extensions ["jpg", "jpeg", "png", "gif", "bmp", "tbn"] Please select field: 1 Save? yes/no |yes| saving: /root/.dvdprofiler2xbmcrc For those really observant, you will have noticed that I run the script as root, which I highly recommend against. In my case, my media is still shared with LinuxMCE which absolutely insanely requires the media to be owned by root. One of the reasons I'm switching to XBMC. Now you can run the program again and it will start scanning your media: # dvdprofiler2xbmc saving: /root/.dvdprofiler2xbmcrc Media Directories: /media/royw-gentoo/public/data/movies The Sand Pebbles Loading /home/royw/DVD Profiler/Shared/Collection.yaml not saving, yaml file is newer than xml file ISBN => 024543013099 Need to find box set parent's title ImdbProfile.all({:titles=>[["The Sand Pebbles"], "The Sand Pebbles"], :imdb_id=>"tt0060934", :media_years=>[1966], :production_years=>["1966"], :filespec=>"/media/royw-gentoo/public/data/movies/War/The Sand Pebbles.imdb.xml", :released_years=>["2001-05-15"]}) IMDB ID => tt0060934 My Super Ex-Girlfriend ISBN => 024543380634 Need to find box set parent's title ImdbProfile.all({:titles=>[["My Super Ex-Girlfriend"], "My Super Ex-Girlfriend"], :imdb_id=>"tt0465624", :media_years=>[2006], :production_years=>["2006"], :filespec=>"/media/royw-gentoo/public/data/movies/Comedy/My Super Ex-Girlfriend.imdb.xml", :released_years=>["2006-12-19"]}) IMDB ID => tt0465624 updated /media/royw-gentoo/public/data/movies/Comedy/My Super Ex-Girlfriend.nfo ^Ccontrol-C detected, finishing current task As you can see above you can press ^C to interrupt at any time, but the script will finish processing the current media before terminating. If you let the script run to completion you may see some reports at the end that detail some of your problem media. Example: Missing ISBNs /media/dcerouter/public/data/videos_iso/Drama/Across The Universe Special Features.iso /media/royw-gentoo/public/data/videos_iso/Musicals/Going My Way and Holiday Inn.iso /media/royw-gentoo/public/data/movies/Animation/No Time For Nuts.m4v /media/dcerouter/public/data/videos_iso/Science Fiction/Riddick Trilogy 3.iso /media/dcerouter/public/data/videos_iso/Science Fiction/Riddick Trilogy 1 & 2.iso /media/royw-gentoo/public/data/videos_iso/Science Fiction/Aeon Flux [WS] [Special Collector s Edition].iso /media/royw-gentoo/public/data/videos_iso/Thriller/Leon The Professional.iso /media/dad-kubuntu/public/data/videos_iso/Action/Deja vu.iso Missing IMDB IDs Rodeo Racketeers: John Wayne Young Duke Series (1934) Across The Universe Special Features Going My Way and Holiday Inn Pearl Harbor Payback Appointment in Tokyo (2001) Riddick Trilogy 1 & 2 Deja vu Seabiscuit: America s Legendary Racehorse (2003) Missing Thumbnails /media/dcerouter/public/data/videos_iso/Drama/Across The Universe Special Features.tbn /media/royw-gentoo/public/data/videos_iso/Musicals/Going My Way and Holiday Inn.tbn /media/royw-gentoo/public/data/movies/Animation/No Time For Nuts.tbn tt0902999 /media/dcerouter/public/data/videos_iso/Science Fiction/Riddick Trilogy 3.tbn tt0407749 /media/dcerouter/public/data/videos_iso/Science Fiction/Riddick Trilogy 1 & 2.tbn /media/royw-gentoo/public/data/videos_iso/Comedy/The First To Go - 0.tbn tt0119126 Usually the Missing ISBNs are letting you know that the media title (from the filename) could not be found in the DVD Profiler's Collection.xml. The best approach is to check the title in the profile in DVD Profiler. Above, "Aeon Flux", "Deja vu" and "Leon The Professional" are not found because the actual titles have accented characters. "Across The Universe Special Features" is the special feature disk so is not found. "Going My Way and Holiday Inn" is a double feature disk, probably should transcode each movie into separate files. "No Time For Nuts" is a cartoon on an Ice Age movie. The Riddick Trilogy isos should be transcoded into separate files. The Missing IMDB IDs usually indicate either odd ball movies that are not on IMDB, or multiple feature titles, or multiple matches. If it's the later then it's best to add the production year to the file name. You should have the idea now. You may want to get the command line help by running: dvdprofiler2xbmc --help == REQUIREMENTS: * ruby 1.8.x * rubygem * my imdb fork on github (sudo gem install royw-imdb) == INSTALL: sudo gem install royw-dvdprofiler2xbmc == UNINSTALL: sudo gem uninstall royw-dvdprofiler2xbmc optionally (shouldn't be necessary) rm ~/.dvdprofiler2xbmcrc == LICENSE: (The MIT License) Copyright (c) 2009 Roy Wright Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。