# Filmverwaltung



## CroweHammer (3. Mai 2010)

Hey Forum,

ich habe vor mir eine eigene Filmverwaltung zu schreiben.
Ich weiß, dass dies schon tausendfach versucht/gemacht wurde. 
Dennoch sehe ich darin eine gute Möglichkeit mein Können in Objektorientierung und Beziehungen in PostgreSQL oder MySQL zu verbessern. 
Desweiteren wird das Programm in Englisch geschrieben sein, wenn ich denn nicht auf die Idee komme, es in mehreren Sprachen zur Verfügung zu stellen.
Ich sehe es als Übungsaufgabe, aber gleichzeitig will ich auch ein benutzerfreundliche Endergebnis stehen haben, dass evtl. sogar userabhängig, also mit Admin und User, die sich registrieren können etc. sein soll.
Also, jetzt die Fragen und gleichzeitig Bitte an euch:

1. Was erwartet ihr von einer guten Filmverwaltung? 
2. Welche Funktionen muss eine Filmverwaltung für euch bieten und welche Funktionen wären nice, wenn das Programm sie über die Standardoperationen hinaus bieten würde?

Es darf ruhig etwas Overkill sein, wenn es euch gefallen würde. Also keine Zurückhaltung bei den Vorschlägen und Anregungen.

Gruß und danke
CroweHammer


----------



## ARadauer (3. Mai 2010)

* Einfache Suche (Ein Feld)
* eigene Bewertung, Kommentare
* Zusatz Infos aus IMDB und Amazon
* Datenvervollständigung anhand der EAN, ISBN, Titel usw...


----------



## CroweHammer (3. Mai 2010)

okay einige Fragen dazu:

Eine einfache Suche. -> Was müsste die für dich beeinhalten, bzw. nach was allem würdest du suchen wollen?
Kommentare -> Kommentare, zu welchem Zweck?

weitere Anregungen?


----------



## mabuhay (3. Mai 2010)

zusätzlich zu ARadauer's Vorschläge:

Mindestens:
- Suche: Suche nach Name, Beschreibung, Tags, Genre
- Kommentare: Halt irgendwelche Notizen zum Film, wieso gut oder schlecht. Bei vielen Filmen hat man so besser den Überblick
- Cover anzeige (Bilder sagen mehr als Worte)
- Sortierung nach Name, Genre, Tags, Bewertung, ...

Erweitert:
- Überwachen eines/mehrerer Ordners, in welchem alle Filme abgelegt sind
- Einbindung von Netzlaufwerken
- Manuelles oder Automatisches suchen/hinzufügen der Filme eines Ordners
- Admin kann liste editieren, Benutzer nur anschauen
- Zentrale Speicherung der Filmdatenbank -> Mehrere Clients können Datenbank benützen


----------



## CroweHammer (3. Mai 2010)

- Überwachen eines/mehrerer Ordners, in welchem alle Filme abgelegt sind

was verstehst du unter einer Überwachung eines Ordners?

- Zentrale Speicherung der Filmdatenbank -> Mehrere Clients können Datenbank benützen

Das würde eigentlich nur Sinn machen, wenn ich das ganze im Internet anbiete mit einer zentralen Datenbank, oder wie stellst du dir das vor?

Danke schonmal für die Vorschläge. Immer her mit den guten Ideen.


----------



## MarderFahrer (3. Mai 2010)

Ich würde dir empfehlen einen Blick auf The open movie database zu werfen. Da du ja schon erwähnt hast, dass du es auf Englisch machen möchtest. Diese Seite bietet viele Infos/Cover/Ratings UND bietet eine eigene API an. Im Gegensatz zur Imdb, die das scheinbar gar nicht so gerne sieht wenn man per Software versucht Informationen live von deren Seiten zu ziehen. Das äußerste, was sie dulden ist ein Zugriff auf extra von ihnen bereitgestellte Text/XML Files. Aber wie aktuell die sind kann man natürlich nicht immer genau sagen.

Das schöne an der MovieDB Seite ist, man kann dort auch nach den IMDB ID's suchen und findet dann den entsprechenden Film. Also braucht man gar nicht direkt auf IMDB zugreifen.

Zum Schluß noch der Hinweis, dass viele "MediaManager" schon Zweigleisig fahren. Soll heißen, man kann mit ihnen nicht nur Filme, sondern auch TV Serien verwalten. In diesem Zuge sei Online TV Database - An open directory of television shows for HTPC software erwähnt. Ich weiß nicht genau ob die Seite etwas mit der MovieDB Seite zu tun hat. Auf jeden Fall hat man da auch per API Zugriff auf sämtliche Informationen.

Viel Erfolg


----------



## mabuhay (3. Mai 2010)

CroweHammer hat gesagt.:


> - Überwachen eines/mehrerer Ordners, in welchem alle Filme abgelegt sind
> 
> was verstehst du unter einer Überwachung eines Ordners?
> 
> ...



Mit überwachen meine ich dass wenn ein neuer Film im Ordner abgelegt wird, dieser zur Datenbank hinzugefügt wird (oder eine Meldung ausgegeben wird) ohne dass ich manuell danach suchen muss. Oftmals so in Musikspielern wie iTunes oder Rhythmbox.

Die Zentrale Speicherung würde ich auch im lokalen Netzwerk praktisch finden. Ich verwende zu Hause XBMC, die Filme sind auf dem Server und XBMC läuft auf diversen Clients. Ich muss nun immer an einem Client die Filmdatenbank erstellen oder ändern und diese auf die Clients kopieren damit diese die aktuelle Datenbank haben. Hab noch nicht herausgefunden wie ich das automatisieren könnte. Wenn ich die Datenbank zentral auf dem Server mit den Filmen speichern könnte und alle XBMC Clients könnten darauf zugreifen wäre das die optimale Lösung.

mfg


----------



## Java.getSkill() (3. Mai 2010)

Ich würde dir vorschlagen erst ein Pflichtenheft zu erstellen, wo du erstmal deine Applikation spezifizierst. D.h. du hast die ganze Funktionalität durchgedacht und zur Papier gebracht und kommst nicht nach 3 Wochen programmieren darauf, dass sich 2 Funktionen ausschließen und ständig Konflikte entstehen.

Aber was macht denn eine Filmverwaltung? Du packst doch einfach alle Filme in einen Ordner und gut ists.

Schreib doch lieber eine Anwendung für eine Videothek, welche alle Prozesse bezüglich der Filme, Kunden, Ausleihen, Reservieren, Abrechnen, etc verwalten soll.


----------



## mabuhay (3. Mai 2010)

Java.getSkill() hat gesagt.:


> Aber was macht denn eine Filmverwaltung? Du packst doch einfach alle Filme in einen Ordner und gut ists.



Eben, in der Filmverwaltung gibt es noch erweiterte Möglichkeiten wie Kommentare, Bewertung, Suche/Sortieren nach Titel oder Genre etc...


----------



## CroweHammer (4. Mai 2010)

Sers Leute,

sind ja ein paar echt spannende Anreize dabei. Die Überwachungsgeschichte werd ich auf jeden Fall im Hinterkopf behalten. 
Auch die Idee von MarderFahrer klingt sehr interessant, die Daten über eine fremde API zu beziehen.
Bei der Sache mit der zentralen Speicherung steig ich noch nicht so ganz durch, aber auf jeden Fall werd ich mich darüber nochmal informieren und nicht gleich wieder verwerfen. Schließlich will ich aus diesem Projekt etwas dazulernen und nicht nur Funktionalitäten bereitstellen, welche ich sowieso bereits in der Lage bin umzusetzen.
Um auf Java.getSkill() zurückzukommen. Ich werde auf jeden Fall mein Projekt genau definieren. Welche Funktionen mein Projekt auf jeden Fall bereitstellen wird und welche Nice-To-Have sind. Diese könnte ich im Nachhinein als Updates zur Verfügung stellen oder ähnliches. Dadurch, dass alle Daten, dann sowieso in einer MySQL oder PostgreSQL-Datenbank gesichert sind, sollte dies kein Problem darstellen. An dieser Stelle könnte ich natürlich noch eine Möglichkeit bereitstellen, ein BackUp des aktuellen Stands sichern zu können. 
Desweiteren werde ich eher ein Filmmanagement für den Privatanwender schreiben, als eine Anwendung für eine Videothek. Sollte ich das mit Erfolg über die Bühne bringen, lässt sich über eine derartige Anwendung immer noch nachdenken und dann mit Sicherheit auch verhältnismäßig schnell umsetzen, dadurch dass schon einige Grundlagen gelegt wären.

Über weitere Anregung, Tipps, Hilfen etc. würde ich mich natürlich freuen.

Greetz CroweHammer


----------



## mabuhay (4. Mai 2010)

CroweHammer hat gesagt.:


> Bei der Sache mit der zentralen Speicherung steig ich noch nicht so ganz durch, aber auf jeden Fall werd ich mich darüber nochmal informieren und nicht gleich wieder verwerfen.



Also nochmals 

Stell dir vor du hast mehrere PC's auf welchen du deine Zentral auf einem Server gespeicherten Filme verwalten willst. Jeder PC hat nun lokal die eigene Konfigurationsdatei. Kommt nun ein neuer Film auf den Server, musst du bei allen PC's einzeln die Datenbank aktualisieren.
Macht natürlich nur Sinn wenn du auch mehrere PC's hast wo du die Filmverwaltung anwenden willst. Aber auch wenn die Filme und die Verwaltung auf demselben PC sind würde es natürlich funktionieren.

Bsp:
Ich habe einen Server und 3 PC's. Jeder PC-Benutzer möchte eine Aktuelle Version der Datenbank haben. Ich könnte die Datenbank somit an meinem PC pflegen und alle haben immer die Aktuelle und gepflegte Version zur Verfügung.

Natürlich könnte man dann noch die Bewertung oder Kommentare lokal speichern oder unter einem Benutzernamen in der Datenbank, falls nicht gewünscht ist das diese allen zur Verfügung stehen.

Vielleicht siehst du die Anwendung der Filmverwaltung anderst als ich. Ich möchte sehen können was für Filme ich habe, dann einen auswählen und entweder auf den PC kopieren oder gleich abspielen. Bin ich nur einfacher Anwender will ich mich nicht mit der Aktualisierung der Datenbank herumschlagen ^^

mfg


----------



## Java.getSkill() (4. Mai 2010)

Kannst du das ganze nicht als tutorial starten? Einfach kurze Erklärungen mit dem Sourcecode schreiben.

Das würde erstens dir unheimlich helfen ( Du hast eine Dokumenation für dich und Leute können bei Problemen kurz reinschauen und deine womöglich auftretenden Fragen beantworten) und zweitens lern ich vielleicht was Neues.


----------



## CroweHammer (5. Mai 2010)

ich werds mir überlegen, ob ich das mache ;-) wobei als Tutorial wäre ein bisschen overkill finde ich, oder nicht?

grüße
crowehammer


----------



## Java.getSkill() (5. Mai 2010)

Achne, warum? du lädst einfach den Sourcecode hier hoch und schreibst paar Zeilen Erklärung dazu.
Du glaubst garnicht wieviel du lernst, wenn jemand die Konzepte und Sourcecode gegencheckt.


----------



## Ollek (3. Dez 2010)

Hallo,

da ich gerade auch an einer FIlmverwaltung schreibe, wollte ich mich mal erkundigen woher ich folgende Infos bekomme:

FSK
und das Cover

Lade mir momentan das Cover von der OFDB.de runter, finde die aber qualitativ nicht so tooll und die sind auch ziemlich klein...

Habe die IMDB und OFDB id des Film..


----------



## FArt (3. Dez 2010)

Schau dir iTunes oder das MS MediaCenter (heitß das Ding so?) an und adaptiere alles, was dir daran gefällt...


----------



## CroweHammer (15. Dez 2010)

Ich steh auf den Schlauch.
Ich würde mir gerne die tmdb-API zunutze machen, allerdings weiß ich gerade nicht wie ich das mache 
Ich hab zum einen Mal mein in Java geschriebenes Programm und zum anderen besteht die tmdb-API.
Wenn ich jetzt bspw. einen Film anfragen will, welchen Weg muss ich dazu gehen? Bzw. wie kann ich überhaupt auf die API zurückgreifen? Sorry hab sowas noch nie gemacht und find den Anfang gerade nicht vllt helft ihr mir mit ein paar einleuchtenden Worten auf die Sprünge?

Gruß CroweHammer


----------



## XHelp (15. Dez 2010)

JTMDB | Download JTMDB software for free at SourceForge.net
Vllt ist da ein Beispiel oder so dabei.


----------



## CroweHammer (15. Dez 2010)

ne sry hab ich schon geladen. Hilft mir nicht weiter. Ich muss doch den Weg irgendwie über XML oder JSON gehen, aber ich versteh einfach nicht wie das alles miteinander zusammenhängt.


----------



## ARadauer (15. Dez 2010)

mhn naja zuerst würd ich mir mal die api beschreibung ansehen.. hast du die schon gefunden?


----------



## CroweHammer (15. Dez 2010)

jup siehe hier: 
TMDb API Documentation


----------



## XHelp (15. Dez 2010)

Es würde sich anbieten, wenn du dir anguckst wie man in Java mit XML Inhalten arbeitet.


----------



## CroweHammer (15. Dez 2010)

Wie funktioniert das Prinzip bzw. der Ablauf?
Ich kann über die TMDB-API einzelne Knoten/Elemente von XML-Files ansprechen?


----------



## XHelp (15. Dez 2010)

Liefert dir Google Suche nach "java xml" keine brauchbaren Ergebnise?
Ansonsten kannst du dir lycia - Project Hosting on Google Code von Noctarius angucken.
Nein, mit tmdb api kannst du nicht auf XML-Knoten zugreifen. Mit der API kannst du die gewünschten Informationen (scheinbar) als XML bekommen


----------



## CroweHammer (15. Dez 2010)

Das ich noch klären muss wie Java mit XML umgeht ist mir bewusst. 
Allerdings will ich zuerst mal den Ablauf verstehen, bevor ich mich an die Ausprogrammierung machen.
Also verstehe ich das jetzt so, dass ich in meinem Programm Funktionen der TMDB-API aufrufe, um mir XML-Schnipsel zu holen, aus welchen ich mir letzt endlich die gewünschten Daten raushole?


----------



## ARadauer (15. Dez 2010)

> Also verstehe ich das jetzt so, dass ich in meinem Programm Funktionen der TMDB-API aufrufe,


über http, ein einfacher url aufruf... du kannst das ganze auch im browser eingeben...

URL.. openConnection, bufferedReader usw...


```
URLConnection con = new URL(aufruf).openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
usw...
```


----------



## Ollek (22. Jan 2011)

Hallo,

also ich bin nun soweit bei meiner Filmverwaltung, dass die Infos zum Film von OFDB.de geladen werden...
Das geschiet durchs auslesen des Quelltextes der Website... Das dauert mir aber alles zu lange... Klappt alles aber es dauert halt und das finde ich nicht schön...

Hat jemand eventuell von Tipp, wie man das beschleunigen kann? Gibt es eine API für eine deutsche online filmdatenbank?
Oder hat jemand eine bessere Seite als OFDB?

Wäre schön, wenn ihr mir helfen könnt... 

Viele Grüße


----------



## darekkay (22. Jan 2011)

Kennst du das schon? TMDb API Documentation &mdash; Movie & Cast Information


----------



## Ollek (23. Jan 2011)

Nein, kenne ich nicht..
Muss ich mir mal anschauen... Bekomme ich dort auch die ganzen Infos auf deutsch ?
Das wäre nen wichtiger Punkt...


----------



## darekkay (23. Jan 2011)

Ich hab mich selbst noch nicht so sehr mit der Seite auseinandergesetzt, sie wurde mir aber in einem anderen Thread empfohlen.

Auf deutsch scheint es nur den (alternativen) Titel zu geben, die Beschreibung etc. nicht.
Und was ich gerade mitbekommen habe - zwar deutet der Titel der Website schon darauf hin, aber ich dachte, dass trotzdem auch Serien zu finden gibt. Es scheint also eine reine Film-Seite zu sein.

Und noch mal zu deinem Problem: dauert dir das Auslesen eines einziges Films so lange, oder war das auf die gesamte Sammlung bezogen? Ich würd nämlich an deiner Stelle eine Art Cache einbauen, falls noch nicht geschehen - so musst du für jeden Film nur einmal die Informationen laden (diese werden sich eh kaum verändern, aber eine zusätzliche Option "alles/ausgewählte Filme aktualisieren" wäre ja auch eine Möglichkeit)


----------



## Ollek (23. Jan 2011)

Mit Chache ist noch nichts geschehen???
Kannst du mir da nen kleines Beispiel geben??

Werde jetzt nämlich eine Schnittstelle schreiben, die mir die Daten von cinefacts.de lädt.. 
Kann man eventuell auch pro Info einen eigenen Thread eröffnen?? Würde das eventuell schneller gehen?
Sprich für den Plot, fürs Genre etc...


----------



## darekkay (23. Jan 2011)

Was ich meine, ist, dass du die Informationen auf der Festplatte speichern solltest.

Die Frage ist also: wenn du durch deine Sammlung stöberst und dir die Informationen zu einem Film anzeigen lässt, werden dann die Informationen jedes mal neu aus dem Internet geholt?
In dem Fall würde ich versuchen, die Informationen lokal auf dem Rechner zu speichern. Das heißt, du musst nur einmalig die Website parsen, und ab dem zweiten Mal sollten die Daten von der Festplatte geladen werden.


----------



## Ollek (24. Jan 2011)

okay.. ich habs falsch verstanden...

Klar das mache ich.. Hab die H2 Database als Jar immer dabei, dort speichere ich die Filmdaten drin ab.. Oder hast du eine bessere Idee???

Also generell dauert mir das runterladen der Daten, sprich das auslesen der Website zu lange.. Meinste das könnte man beschleunigen? Idee von mir wäre mit den Threads...


----------



## Ollek (24. Jan 2011)

...


----------

