[Metadata Agent] MovieMeter


#1

Metadata agent voor Nederlandstalige filmbeschrijvingen

De MovieMeter metadata agent is een secundaire agent en werkt in combinatie met de Plex Movie of The Movie Database agent. MovieMeter haalt Nederlandstalige titels, beschrijvingen, genre informatie, rating en poster op van www.moviemeter.nl

Installatie

  • Open de Plex web client en ga naar Channel Directory. Daar kom je via Channels (in de linker menubalk) → Install Channels.
  • Kies More...Metadata AgentsMovieMeterInstall. De agent wordt nu gedownload en geïnstalleerd.

Na installatie kun je in de instellingen de MovieMeter agent activeren en indien nodig omhoog schuiven in de lijst. Deze instellingen kun je vinden in de Plex web client: SettingsServerAgentsMovies → kies Plex Movie of The Movie Database.

Reeds bestaande film bibliotheken waar je MovieMeter informatie bij wilt verkrijgen zullen door middel van de Refresh All Metadata optie geüpdatet moeten worden.


#2

Super, bedankt!

Ben nu mijn library opnieuw aan het scannen, en de agent lijkt goed te werken!


#3

Sander bedankt voor je inspanning!


#4

wordt zeker gewaardeerd. Thanks



[edit] heb je ergens ook een soort uitleg over hoe en wat je gedaan hebt?[/edit]


#5

[quote name='Doosje' date='07 September 2010 - 07:40 PM' timestamp='1283881222' post='103422']


heb je ergens ook een soort uitleg over hoe en wat je gedaan hebt?

[/quote]




Hoi!

Ik heb James tientallen vragen gesteld over de agents (er is namelijk nog helemaal geen documentatie) :) Daarnaast zijn de IMDb, TVRage, Wikipedia en de door Oncleben geschreven Ciné-Passion agents goede voorbeelden om naar te kijken.



Laat je vooral niet afschrikken door het feit dat sommige agents een paar honderd regels code zijn. Dit heeft vooral te maken met hoe de informatie gezocht moet worden. Als in verschillende HTML pagina's naar gegevens gezocht moet worden (zoals bij IMDb) levert dat meer code op. Wanneer de bronwebsite een API ter beschikking stelt (zoals moviemeter.nl) die nette in XML of JSON ingedeelde gegevens teruggeeft, scheelt dat aanzienlijk.



Je kunt het MovieMeter Python script inzien op Github ('t is maar 37 regels code). De init en get_session_key methodes zijn 'extra' (init is alleen nodig als je 'm nodig hebt ;) en get_session_key is in dit geval gebruikt omdat de MovieMeter XML-RPC API een sessie_key nodig heeft en het handig is als deze opgevraagd kan worden via een methode.



De MovieMeter agent draagt informatie bij aan de IMDb agent, het is dus geen volwaardige agent. Ik heb me nog niet verdiept in hoe deze werken en wat de verschillen precies zijn. Een agent is altijd een afgeleide class van de base class Agent.Movies of Agent.TV_Shows, dus:


class AfgeleideClassNaam(BaseClassNaam):



De class heeft minimaal twee methodes, genaamd search en update.


#6

Ik ben een Python/OOP n00b, maar hopelijk heb je wat aan deze info (dit is v0.1, meest recente versie op Github):



# MovieMeter Metadata Agent<br />
from time import time # Importeer time, dit hebben we nodig om de huidige tijd (als Unix timestamp) te kunnen vergelijken met de "geldig tot"-waarde voor de session_key die we terug krijgen uit de MovieMeter API<br />
<br />
MM_ENDPOINT_URI = 'http://www.moviemeter.nl/ws' # De XML-RPC url waar we de informatie aanvragen doen<br />
MM_API_KEY = 'yx77z030250ckrqo2j3z4f7x7e4w7hv8' # Een unieke API key (zie http://www.moviemeter.nl/site/registerclient/)<br />
<br />
def Start():<br />
  HTTP.CacheTime = CACHE_1DAY # Cache opgehaalde gegevens voor 1 dag (in dit geval wordt dit niet gebruikt, omdat we met XML-RPC werken)<br />
<br />
class MovieMeterAgent(Agent.Movies):<br />
  name = 'MovieMeter'<br />
  languages = ['nl']<br />
  primary_provider = False<br />
  contributes_to = ['com.plexapp.agents.imdb'] # Geeft aan dat deze agent informatie bijdraagt aan de IMDb agent<br />
<br />
  def __init__(self): # De constructor<br />
    Agent.Movies.__init__(self) # Roept de constructor van de base class aan (omdat we de constructor niet willen overschrijven)<br />
    self.proxy = XMLRPC.Proxy(MM_ENDPOINT_URI) # XMLRPC.Proxy is nieuw in framework v2 en is een handig laagje om de standaard Python xmlrpc module heen (http://docs.python.org/library/xmlrpclib.html)<br />
    self.valid_till = 0<br />
<br />
  def search(self, results, media, lang):<br />
    mm_id = self.proxy.film.retrieveByImdb(self.get_session_key(), media.primary_metadata.id) # Spreekt de methode film.retrieveByImdb aan, met als input een geldige session_key (verkregen via de get_session_key methode) en het IMDb film id (bijv "tt01234567"). Het film id is al door de IMDb agent opgezocht<br />
    if mm_id != None:<br />
      results.Append(MetadataSearchResult(id = mm_id, score = 100))<br />
<br />
  def update(self, metadata, media, lang):<br />
    response = self.proxy.film.retrieveDetails(self.get_session_key(), int(metadata.id)) # Spreekt de methode film.retrieveDetails aan om filmdetails op te halen<br />
    if response != None:<br />
      metadata.summary = response['plot'] # Plaats het Nederlandstalige plot in 'metadata.summary', deze wordt door Plex gebruikt<br />
<br />
  def get_session_key(self):<br />
    if self.valid_till < int(time()): # Controleer of onze session_key nog geldig is<br />
      response = self.proxy.api.startSession(MM_API_KEY) # Zo niet, haal een nieuwe op met behulp van de methode api.startSession en de API key<br />
      self.session_key = response['session_key']<br />
      self.valid_till = int(response['valid_till'])<br />
<br />
    return self.session_key


#7

sorry maar ik snap niet goed hoe de installatie precies moet. Na download heb ik een zip bestand, en na uitpakken een zip.cpgz bestand. Dat lijkt dus in een lus te draaien en niet uitgepakt te geraken. In welke map moet die terechtkomen? Bij info provider settings staat die er dus voorlopig nog niet tussen



Alvast hartelijk dank voor de inspanning


#8

[quote name='macbart' date='08 September 2010 - 12:14 AM' timestamp='1283897682' post='103593']


sorry maar ik snap niet goed hoe de installatie precies moet. Na download heb ik een zip bestand, en na uitpakken een zip.cpgz bestand. Dat lijkt dus in een lus te draaien en niet uitgepakt te geraken. In welke map moet die terechtkomen? Bij info provider settings staat die er dus voorlopig nog niet tussen



Alvast hartelijk dank voor de inspanning

[/quote]






heb de oplossing gevonden, door simpel de extensie .zip te wissen. Nu is moviemeter zichtbaar bij de info provider settings.


#9

[quote name='macbart' date='08 September 2010 - 12:21 AM' timestamp='1283898107' post='103601']


heb de oplossing gevonden, door simpel de extensie .zip te wissen. Nu is moviemeter zichtbaar bij de info provider settings.

[/quote]


Gek dat het bestand als .zip gezien wordt bij het downloaden. Gelukkig heb je de oplossing gevonden. Voor iedereen die ook tegen dit probleem aanloopt: de volledige bestandsnaam moet zijn "MovieMeter.plexapp"


#10

Super dat al mijn films nu een Nederlandse beschrijving hebben!

Wat me wel opviel is dat sommige vreemde karakters niet goed door komen.

Zoals bij deze film:

http://www.moviemeter.nl/film/34648



Hier staan op de plaats van ' allemaal vierkantjes.

Is dit een probleem van mijn skin (reFocus)?


#11

[quote name='sandman4sure' date='08 September 2010 - 08:38 AM' timestamp='1283927895' post='103838']


Super dat al mijn films nu een Nederlandse beschrijving hebben!

Wat me wel opviel is dat sommige vreemde karakters niet goed door komen.

Zoals bij deze film:

http://www.moviemeter.nl/film/34648



Hier staan op de plaats van ' allemaal vierkantjes.

Is dit een probleem van mijn skin (reFocus)?

[/quote]


Oeps, dat probleem was ik zelf nog niet tegengekomen :blink: 't Probleem is nu opgelost en een nieuwe versie van de agent vind je in de startpost.


http://img838.imageshack.us/img838/7691/16878778.png


#12

super, dank je wel!


#13

Alles opnieuw gescand. Fantastisch werkt toppie BEDANKT!!!!


#14

Beste Sander,





wordt stiekem een klein beetje moedeloos. ik moet iets fout doen maar zie niet wat.

Heb Plex nu voor de 4e x geïnstalleerd/verwijderd. Maar nog steeds geen goed werkende

Media Manager.

Ik start nu met steeds met 1 film. Maar het enige wat ik te zien krijg is een kleine preview thumbnail

van de film met de title erboven. Verder geen plot of aanverwante info over de film.



De Film zit netjes in een map. Zowel de film als de map hebben beide de naam van Moviemeter. (of IMDB wat ook geen resultaat oplevert)

Het betreft in deze de film The Kite Runner (2007)



Ik heb je Agent geïnstalleerd, ge-reboot, de info provider settings net zo gezet zoals je afgebeeld hebt. Maart nog steeds geen resultaat....

Wat doe ik fout? heb geen proxy, firewall aanstaan enz.



Gr Dre


#15

Op dit moment werkt de IMDB scanner niet, wat inhoudt dat geen enkele film meta data krijgt.

Ze zijn er mee bezig. Houd de twitter pagina in de gaten:



http://twitter.com/plexapp


#16

Hi Sander,



Bedankt voor je reaktie!

Op zich was mn poging met IMDB maar een alternatief.

Wil heel graag je agent gebruiken. Nu zie ik in jou voorbeeld hoe jou plot en covert art eruit ziet.

Ik heb je agent geinstalleerd, heb 'm in de lijst helemaal bovenaan gesleept, maar geen enkel resultaat.

Geen cover-art en geen plot.



Wat doe ik fout?


#17

of moet ik het zo opvatten dat het gehele IMDB gedeelte eruit ligt?

Dus geen cover-art op dit moment. En omdat je eerst de IMDB als basis nodig hebt,

werkt jou agent ook niet.... Begrijp ik het zo goed?



Dan is het geduldig afwachten...



Dre


#18

Ik ben niet degene die de Agent gemaakt heeft, dat is sander1.



Als de IMDB agent eruit ligt, dan werkt niets. De moviemeter agent neemt namelijk alleen de beschrijving van de film voor zijn rekening, de rest komt voor een groot deel van imdb...



Even wachten dus nog totdat ze het hebben gemaakt


#19

Sander bedankt voor deze zeer waardevolle MovieMeter agent. Ik ben nog niet over naar Plex 0.9 mede omdat er nog geen MovieMeter agent bestond en ik op dit moment al mijn films in Plex 0.85 met Nederlands plot heb staan.

Dus jouw agent gaat voor mij nu betekenen dat ik kan gaan updaten. Sander nogmaals bedankt voor de mooie plugins en agent die je voor ons maakt en waar je een hoop tijd en energie in steekt voor de Nederlandse community.

Ook heel erg bedankt namens mijn meisje :rolleyes:


#20

Heel relaxed dit! Alleen jammer dat je alles opnieuw moet gaan scannen, ik heb net alles goed staan met wat aangepaste Movie posters enzo.. :(



Zou dus graag alleen de beschrijvingen willen updaten met die van MovieMeter. Kan dat? Zo ja, hoe? :)