SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV v7 Customizations > Batch Metadata Tools
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

Batch Metadata Tools This forums is for discussing the user-created Batch Metadata Tools for SageTV.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 06-27-2010, 06:11 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
BMT 4.2 - Uploaded to the repository

The easiest way to upgrade is to upgrade the bmtweb plugin. That should force an upgrade of bmt, phoenix-core and phoenix-api.

Here is a list of fixes in 4.2
* Fixed an issue in the web ui where folder scanning didn't work
* Added ability to change the externalid for non recordings
* Added ability to change archived and watched flags
* Added MyMovies support (for Gerry) (I didn't think anyone used this)
* Fixed lots of bugs in MyMovies and DVDProfiler support (Still uses DOM Parser for now)
* Fixed DateUtil issue that was causing a NullPointerException
* Fixed issue with Cast Members and Genres, where they were not being serialized/deserialized correctly
Reply With Quote
  #2  
Old 06-27-2010, 06:41 PM
stanger89's Avatar
stanger89 stanger89 is offline
SageTVaholic
 
Join Date: May 2003
Location: Marion, IA
Posts: 15,188
OK, got another one, still having trouble with some files:

Code:
2010-06-27 19:35:26,554 [10009590@qtp-26089635-5] WARN  sagex.SageAPI - call() failed for: GetMediaFileMetadata
java.lang.reflect.InvocationTargetException
	at sage.SageTV.api(Unknown Source)
	at sagex.remote.EmbeddedSageAPIProvider.callService(EmbeddedSageAPIProvider.java:16)
	at sagex.SageAPI.call(SageAPI.java:163)
	at sagex.api.MediaFileAPI.GetMediaFileMetadata(MediaFileAPI.java:1523)
	at sagex.phoenix.vfs.sage.SageMediaFile.isType(SageMediaFile.java:119)
	at sagex.phoenix.vfs.DecoratedMediaFile.isType(DecoratedMediaFile.java:97)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.convertResource(BrowsingServicesImpl.java:69)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.convertResource(BrowsingServicesImpl.java:55)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.browseChildren(BrowsingServicesImpl.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: sage.a.e: Error in method reflection of GetMediaFileMetadata of java.lang.NullPointerException
	at sage.ay.a(Unknown Source)
	at sage.e.a(Unknown Source)
	... 38 more
Caused by: java.lang.NullPointerException
	at sage.b3.bt(Unknown Source)
	at sage.e.m$49.null(Unknown Source)
	... 40 more
Do you have DVD Profiler installed? I'm wondering if maybe they changed something, I'm running 3.6.
Reply With Quote
  #3  
Old 06-27-2010, 07:15 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by stanger89 View Post
OK, got another one, still having trouble with some files:

Code:
2010-06-27 19:35:26,554 [10009590@qtp-26089635-5] WARN  sagex.SageAPI - call() failed for: GetMediaFileMetadata
java.lang.reflect.InvocationTargetException
	at sage.SageTV.api(Unknown Source)
	at sagex.remote.EmbeddedSageAPIProvider.callService(EmbeddedSageAPIProvider.java:16)
	at sagex.SageAPI.call(SageAPI.java:163)
	at sagex.api.MediaFileAPI.GetMediaFileMetadata(MediaFileAPI.java:1523)
	at sagex.phoenix.vfs.sage.SageMediaFile.isType(SageMediaFile.java:119)
	at sagex.phoenix.vfs.DecoratedMediaFile.isType(DecoratedMediaFile.java:97)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.convertResource(BrowsingServicesImpl.java:69)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.convertResource(BrowsingServicesImpl.java:55)
	at org.jdna.bmt.web.server.BrowsingServicesImpl.browseChildren(BrowsingServicesImpl.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: sage.a.e: Error in method reflection of GetMediaFileMetadata of java.lang.NullPointerException
	at sage.ay.a(Unknown Source)
	at sage.e.a(Unknown Source)
	... 38 more
Caused by: java.lang.NullPointerException
	at sage.b3.bt(Unknown Source)
	at sage.e.m$49.null(Unknown Source)
	... 40 more
Do you have DVD Profiler installed? I'm wondering if maybe they changed something, I'm running 3.6.
This particular line is dying on a call to GetMediaFileMetadata("MediaType"). "MediaType" is a custom metadata field. phoenix-core should have automatically installed the custom metadata fields, but you may want to check your Sage.properties to see if you have custom_metadata_properties set with a bunch of fields. Or you can check via the Web UI, Configure -> SageTV -> Metadata Settings - > Custom Metadata Field. There may be an issue where phoenix-core is NOT updating the custom metadata fields.

BTW... no I don't have dvd profiler installed, i'm basing my code off a Collection.xml that as sent to me about 2 years ago. If you want to send me a sample of your Collection.xml, I can see if there are some changes that I should be account for. I do have a unit test that tests the complete end-to-end dvdprofiler lookup to ensure that it does work, for searching, finding, and that it extracts the correct metadata fields, etc.
Reply With Quote
  #4  
Old 06-27-2010, 08:29 PM
stanger89's Avatar
stanger89 stanger89 is offline
SageTVaholic
 
Join Date: May 2003
Location: Marion, IA
Posts: 15,188
It looks like they're all there:
Code:
SeasonNumber;Actor;Description;Director;EpisodeName;EpisodeNumber;Fanart;Genre;Guest;IMDBID;MediaProviderDataID;MediaProviderID;MediaTitle;MediaType;OriginalAirDate;ParentalRating;Rated;RunningTime;Title;UserRating;Writer;Year;
I attached a test XML, from one of the titles that failed the to be found.
Attached Files
File Type: zip Test.zip (2.7 KB, 202 views)
Reply With Quote
  #5  
Old 06-28-2010, 01:09 AM
bulaman's Avatar
bulaman bulaman is offline
Sage User
 
Join Date: Nov 2008
Posts: 26
I do not think this is a BMT issue, prob sagev7. My naming convention is: SeriesName.s##e##.showTitleOrSomeOtherJunk.mkv

Seems like BMT is changing the display name to be the name of the episode and sage is sorting on that name instead of the file name.
So if I have 2 files named:
SeriesName.s01e01.Zsomething.mkv
SeriesName.s01e02.Asomething.mkv

Currently episode 2 is listed before episode 1.

I am not a fan of how sageV7 sorts, but I figure I can fix this by making the display name s##e## - Title

I thought in the old version you could change how BMT created the display name....I do not see that option. Is it gone? I could do it manually, but it would be a pain if I ever had to reindex all of my files....

Huge thanks for your work!!!
Reply With Quote
  #6  
Old 06-28-2010, 05:40 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by bulaman View Post
I do not think this is a BMT issue, prob sagev7. My naming convention is: SeriesName.s##e##.showTitleOrSomeOtherJunk.mkv

Seems like BMT is changing the display name to be the name of the episode and sage is sorting on that name instead of the file name.
So if I have 2 files named:
SeriesName.s01e01.Zsomething.mkv
SeriesName.s01e02.Asomething.mkv

Currently episode 2 is listed before episode 1.

I am not a fan of how sageV7 sorts, but I figure I can fix this by making the display name s##e## - Title

I thought in the old version you could change how BMT created the display name....I do not see that option. Is it gone? I could do it manually, but it would be a pain if I ever had to reindex all of my files....

Huge thanks for your work!!!
I think i might have answered your question in this post.
Reply With Quote
  #7  
Old 06-28-2010, 07:25 AM
stlbearboy stlbearboy is offline
Sage Advanced User
 
Join Date: Dec 2008
Posts: 81
Why not sort on original air date?
__________________
Server AMD 9600 AMD 780G ATX Motherboard Vista Ultimate Edition 4GB Ram 3 Hauppauge HD PVR, 1 Hauppauge 1600, 2 Avermedia A180, 2 Hauppauge 1250, 1 Avermedia a188 duo
Reply With Quote
  #8  
Old 06-28-2010, 09:22 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
I'm not sure you can sort on original Air date in the video library (the poor sorting/categorizing is the reason all my TV show rips get moved to the recording database). Works pretty well so far. In the interim the other day, I had made a quick tool to manually change the ExternalID of shows in the library to EPtvdb[TVDBID]s00e00 format. Works well, because i can sort by ShowID, and they sort in proper season-episode order.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #9  
Old 06-28-2010, 10:46 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by Fuzzy View Post
I'm not sure you can sort on original Air date in the video library (the poor sorting/categorizing is the reason all my TV show rips get moved to the recording database). Works pretty well so far. In the interim the other day, I had made a quick tool to manually change the ExternalID of shows in the library to EPtvdb[TVDBID]s00e00 format. Works well, because i can sort by ShowID, and they sort in proper season-episode order.
That's interesting... i'll make a note to perhaps use that format to bmt when importing recordings...
Reply With Quote
  #10  
Old 06-28-2010, 03:04 PM
bulaman's Avatar
bulaman bulaman is offline
Sage User
 
Join Date: Nov 2008
Posts: 26
Quote:
Originally Posted by stuckless View Post
I think i might have answered your question in this post.

Thanks, I figured it was not BMT. I wish the interface gave you the option on what to sort by. Seemed like file name would be easiest. Of course pretty easy for me to say seeing how I am not doing the coding.

I would import them but I like to keep recorded and save seperate...otherwise my wife would never delete anything she recorded and never watched!!

thanks again.
Reply With Quote
  #11  
Old 06-29-2010, 08:48 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Phoenix Core upgraded 2.0.3

I've upgraded the phoenix-core plugin to 2.0.3. This fixed a couple of minor issue, and adds some extra checks around the Plugin start to ensure that it doesn't fail.

If things are working ok for you, then there is no need to take this build, since it doesn't fix anything critical or add any new features.
Reply With Quote
  #12  
Old 06-30-2010, 05:51 PM
nyplayer nyplayer is offline
SageTVaholic
 
Join Date: Sep 2005
Posts: 4,997
Stuckless,

Why is it when I browse Sage Imports (Combined) V7... I get all the recordings etc... that I have re-encoded and moved to another location. These are not in the imported video folders? This causes the script in Firefox to ask to stop or continue due to too many entries.

PS this was not a problem in metadata-updater-4.0-beta21

OOPs my fault I guess
Edit I see I just selected imports and all is ok... I guess that combined means everything.

Thanks for all your hard work.
__________________
Channels DVR UBUNTU Server 2 Primes 3 Connects TVE SageTV Docker with input from Channels DVR XMLTV and M3U VIA Opendct.

Last edited by nyplayer; 06-30-2010 at 05:57 PM.
Reply With Quote
  #13  
Old 06-30-2010, 07:55 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by nyplayer View Post
OOPs my fault I guess
Edit I see I just selected imports and all is ok... I guess that combined means everything.
For some reason, when sage transcodes videos, it does put them in the video library. Not sure why, and I'm not sure there is an option to turn it off. I think even if you transcode to ta folder that is not in your import path, it will still show up

As for the firefox issue about asking to stop the long running process.... I've noticed that as well. One of the future improvements that I intend to make in the web ui is to only only about 20 items at a time, and then have a "load more" button to load more items. That should prevent the firefox message.
Reply With Quote
  #14  
Old 06-30-2010, 09:16 PM
kha kha is offline
Sage Advanced User
 
Join Date: Dec 2005
Posts: 100
Exclude Pattern

Hello,

I would like to skip scanning and creating .property files for any video stored in the directory "E:\HTPC_Videos\". I thought I can use property phoenix/fanart/excludePattern to achieve this. I defined this property as
E:\\HTPC_Videos.

However files in this directory are still being scanned. Please advise.

Regards,
Michael.
Reply With Quote
  #15  
Old 06-30-2010, 10:10 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by kha View Post
Hello,

I would like to skip scanning and creating .property files for any video stored in the directory "E:\HTPC_Videos\". I thought I can use property phoenix/fanart/excludePattern to achieve this. I defined this property as
E:\\HTPC_Videos.

However files in this directory are still being scanned. Please advise.

Regards,
Michael.
UNless you have other directories called "HTPC_Videos", then, i'd just use the name, HTPC_Videos, in the ignore pattern. you should set this using the webui.
Reply With Quote
  #16  
Old 06-30-2010, 10:26 PM
alfi33 alfi33 is offline
Sage Aficionado
 
Join Date: Jun 2008
Posts: 311
Quote:
Originally Posted by stuckless View Post
For some reason, when sage transcodes videos, it does put them in the video library. Not sure why, and I'm not sure there is an option to turn it off. I think even if you transcode to ta folder that is not in your import path, it will still show up
I think you can prevent this now by setting this property to true:
Code:
transcoder/dont_add_converted_duplicate_files_to_db
__________________
Server: SageTV v9 on unRAID Docker; i5-2400; 16GB RAM; 9TB storage array; SiliconDust HDHR3
Client: Windows10; Intel Core2Duo; 4GB RAM; NVIDIA GeForce GT 1030
Client: NVIDIA ShieldTV
Client: Fire TV Stick 4K
Reply With Quote
  #17  
Old 07-01-2010, 05:02 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by alfi33 View Post
I think you can prevent this now by setting this property to true:
Code:
transcoder/dont_add_converted_duplicate_files_to_db
Thanks! I totally missed that.
Reply With Quote
  #18  
Old 07-01-2010, 01:27 PM
kha kha is offline
Sage Advanced User
 
Join Date: Dec 2005
Posts: 100
Quote:
Originally Posted by stuckless View Post
UNless you have other directories called "HTPC_Videos", then, i'd just use the name, HTPC_Videos, in the ignore pattern. you should set this using the webui.
HTPC_Videos directory is unique and your recommendation is exactly what I tried first. However, for some reason it did not work. I use test function in the Web GUI to see if the path name for a file I want to skip is being matched - it does. However, in spite of that, .my and .properties files are still being created. Is there any additional debugging you would recommend?
Reply With Quote
  #19  
Old 07-02-2010, 08:14 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by kha View Post
HTPC_Videos directory is unique and your recommendation is exactly what I tried first. However, for some reason it did not work. I use test function in the Web GUI to see if the path name for a file I want to skip is being matched - it does. However, in spite of that, .my and .properties files are still being created. Is there any additional debugging you would recommend?
If you are seeing .my files created, then that's not BMT. The .properties may be bmt, or it may be created becase other plugins might use the SetMediaFileMetadata() api and sage is set by default to create/update the .properties when that api is called.

The exclude filter is ONLY used by the scanner (automated scanner, or the web ui scanner) and it is not used by the web ui browser. ie, if you exclude a folder, then it will still show up in the web ui media browser, but it will not be scanned if you choose to scan a folder.
Reply With Quote
  #20  
Old 07-02-2010, 09:25 PM
kha kha is offline
Sage Advanced User
 
Join Date: Dec 2005
Posts: 100
Quote:
Originally Posted by stuckless View Post
If you are seeing .my files created, then that's not BMT. The .properties may be bmt, or it may be created becase other plugins might use the SetMediaFileMetadata() api and sage is set by default to create/update the .properties when that api is called.

The exclude filter is ONLY used by the scanner (automated scanner, or the web ui scanner) and it is not used by the web ui browser. ie, if you exclude a folder, then it will still show up in the web ui media browser, but it will not be scanned if you choose to scan a folder.
Thank you very much!

Michael
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
BMT: Read this if you don't see any BMT topics Opus4 SageTV Customizations 0 04-25-2010 09:17 PM
SageMC Menu Layout Repository MeInMaui SageMC Custom Interface 20 07-25-2008 04:01 PM


All times are GMT -6. The time now is 07:22 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.