Gå til innhold

DVD bibliotek program.


r2d290

Anbefalte innlegg

Hallo. Har begynt å få en fin liten samling av filmer (dvd-er) på hylla i stua nå, og har lyst til å få en oversikt over hva jeg har. Er det noen som har et forslag på et program der jeg kan skrive inn tittel, skuespillere, genere (sjanger), år og info om filmen? (kan med fordel også være mulig å legge til bilde av coveret...)

 

må da nødvendigvis være en søkemotor i programmet også. Noen forslag?

 

edit: er mediamonkey et slikt program?

Endret av r2d290
Lenke til kommentar
Videoannonse
Annonse

Anbefaler deg Ant Movie Catalog. Akkurat det du beskriver. Gjør det også mulig å innhente informasjon fra en haug websider ut fra tittel e.l. Du kan også skrive egne script for å hente fra sider som det ikke finnes script for i dag. I tillegg er det gratis :) :) :)

 

Det er sikkert ikke det kraftigste programmet på markedet, men det er svært bra, og ikke minst gratis.

 

Edit: la til link

Endret av cyclo
Lenke til kommentar
Anbefaler deg Ant Movie Catalog. Akkurat det du beskriver. Gjør det også mulig å innhente informasjon fra en haug websider ut fra tittel e.l. Du kan også skrive egne script for å hente fra sider som det ikke finnes script for i dag. I tillegg er det gratis :) :) :)

 

Det er sikkert ikke det kraftigste programmet på markedet, men det er svært bra, og ikke minst gratis.

 

Edit: la til link

8894910[/snapback]

 

thx mate ;) skal prøve dette...

 

hvis ikke, er det jo selvsagt et alternativ og bruke regneark ^^

Lenke til kommentar

Brukte selv regneark før, men skiftet til Ant av to grunner:

 

1) Mye lettere å innhente informasjon om filmene. Funker fin-fint å automatisk få lagt inn bilde, skuespillere, språk, plot, mm ved hjelp av få tastetrykk.

 

2) Den kan lagre databasen i et xml format som er kompatibelt med en del PVR programvare. Bl. a. mediaportal som jeg selv bruker. Så nå får jeg opp filmlisten min direkte på tv, og når jeg velger spill på en film vet den om filmen ligger på disk og spiller automatisk, dersom den ikke gjør det sier den sett inn disken.

 

Forøvrig så kan jeg gi deg et lite tips om at jeg vanligvis bruker skriptet som heter Auto.IMDB.com. Forøvrig så bruker den us.imdb.com så den finner som regel ikke så mye om nordiske filmer. Men til filmer/tv-serier som er tilgjengelig i USA syns jeg det er det beste skriptet.

Lenke til kommentar

Vent litt skal undersøke (jeg bruker engelsk)

 

Edit:

Jeg har faktisk ikke brukt den i det hele tatt. Selv bruker jeg Ekstern side som link på dataen fordi mediaportal plugin-tingen min brukte det som standard. Man kunne velge selv. Men det bare ble sånn.

 

Medieettikett og kilde feltene har jeg aldri brukt.

Endret av cyclo
Lenke til kommentar

Du har også DVD Profiler (bare måtte nevne det siden ingen andre har gjort det). Den nye versjonen vil ha så mange begrensninger (maksimalt 50 nye DVD-filmer registrert og mye annet) for gratisversjonen, at du kan like gjerne betale og registrere fullversjonen når du har brukt det en stund og funnet ut hvorvidt du liker det.

 

Det finnes såvidt jeg vet ikke et tilsvarende DVD-database og katalogiseringsprogram for vanlige brukere per i dag. DVD Profiler er veldig omfattende med mange muligheter. Det har bl.a. støtte for tilkobling av strekkodeleser (som du kan få kjøpt for rundt 300,- noen steder tror jeg), som gjør registreringen mye enklere. Ellers trenger du bare å taste inn PIN koden på baksiden av coveret, og så vil DVD Profiler finne filmen med all nødvendig informasjon og legge den til. Du kan selv skrive inn hvor du kjøpte den (du kan redigere listen som viser butikker), hvor mye du betalte, valuta, din karakter og mening m.m.

 

Jeg presterte å slette profilen med de nesten 300 filmene jeg har registrert manuelt nylig, så jeg fjernet programmet og vil ikke innstallere det igjen før jeg har kjøpt en strekkodeleser. Den gamle versjonen gav meg ingen advarsel om at det ville slette databasefilene da jeg avinnstallerte det for å legge inn den nye. Den nye gjorde derimot dette, så det har blitt "fikset".

Endret av Sundiver
Lenke til kommentar

Det er en mulighet. Man kan også skanne strekkoden og deretter bruke den for å slå opp i ulike databaser på nett for å hente informasjonen direkte. Hva en slik strekkodeskanner avhenger nødvendigvis av produsent, funksjonalitet og kvalitet. Man finner strekkodeskannere fra godt under 1000-lappen til mangfoldige 1000-lapper. De jeg har kostet vell rundt 8-900 kr om jeg ikke husker feil, men det var et par år siden, og jeg importerte dem fra UK.

Lenke til kommentar
  • 5 måneder senere...

Straks etter at jeg postet her lagde jeg et lite perl script som jeg bruker for å hente informasjonen fra brafilm. Glemte helt av hele greia, men fikk en liten push av r2d290 nå, så jeg legger ut scriptet her.

 

#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
use HTTP::Cookies;

$DEBUG = 0;

$cookies = HTTP::Cookies->new(file=>'/tmp/rippercookiejar',autosave => 1,);
$ua = new LWP::UserAgent;
$ua->cookie_jar($cookies);

while ($filmID !~ /\d+/) {
print "Enter a valid film ID: ";
$filmID = <>;
}
chop($filmID);

$request = new HTTP::Request 'GET', 'http://www.brafilm.no/browse.do?show=movie&id='.$filmID;
$ua->prepare_request($request);
$response = $ua->request($request);
if ($response->is_success) {
$html = $response->content;
($garbage,$movie) = split(/<div id="browseMovieInfo">/,$html);
if ($movie =~ /<h1>(.+)<\/h1>/i) {
	$title = $1;
	debug("TITLE: ".$title);
}	
if ($movie =~ /\((\d{4})\)/i) {
	$filmyear = $1;
	debug("YEAR: ".$filmyear);
}
if ($movie =~ /stars_1_(\d{2})\.gif/i) {
	$rating = $1;
	$rating = $rating*2/10;
	debug("RATING: ".$rating);
}
if ($movie =~ /<p class="movieDescription">([^<]+)/i) {
	$description = $1;
$description =~ s/[\t\n\r]//g;
	debug("DESCRIPTION: ".$description);
}
if ($movie =~/Originaltittel[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(.+)[\n\t]+<\/td>/i) {
	$originaltitle = $1;
	debug("ORIGINALTITLE: ".$originaltitle);
}
($garbage,$temp) = split(/Sjanger/,$movie);
($sjangersource,$garbage) = split(/kkelord/,$temp);
while ($sjangersource =~ /show=category&id=\d+">[\n\t]+(.+)[\n\t]+<\/a>/gi) {
	push (@s,$1);
}
foreach (@s) {
	$sjanger .= $_.", ";
}
chop($sjanger);
chop($sjanger);
debug("SJANGER: ".$sjanger);
($garbage,$temp) = split(/Manus/,$movie);
($manussource,$garbage) = split(/Skuespillere/,$temp);
while ($manussource =~ /show=person&id=\d+">[\n\t]+(.+)[\n\t]+<\/a>/gi) {
	push (@m,$1);
}
foreach (@m) {
	$manus .= $_.", ";
}
chop($manus);
chop($manus);
debug("MANUS: ".$manus);
($actorsource,$garbage) = split(/Regis/,$garbage);
while ($actorsource =~ /show=person&id=\d+">[\n\t]+(.+)[\n\t]+<\/a>/gi) {
	push (@a,$1);
}
foreach (@a) {
	$actor .= $_.", ";
}
chop($actor);
chop($actor);
debug("SKUESPILLERE: ".$actor);
($directorsource,$garbage) = split(/Premieredato/,$garbage);
while ($directorsource =~ /show=person&id=\d+">[\n\t]+(.+)[\n\t]+<\/a>/gi) {
	push (@d,$1);
}
foreach (@d) {
	$director .= $_.", ";
}
chop ($director);
chop ($director);
debug("DIRECTOR: ".$director);
if ($movie =~/Spilletid:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(\d+) tim (\d+) min/gi) {
	$playtime = $1*60 + $2;
	debug("PLAYTIME: ".$playtime);
}
if ($movie =~/Land:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(.+)[\n\t]+<\/td>/gi) {
	$country = $1;
	$country =~ s/,/, /g;
	debug("COUNTRY: ".$country);
}
if ($movie =~/Lydformat:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) {
	$audio = $1;
	$audio =~ s/[\n\t]//g;
	chop($audio);
	$audio =~ s/,/, /g;
	debug("LYDFORMAT: ".$audio);
}
if ($movie =~/Tale\):[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) {
	$tale = $1;
	$tale =~ s/[\n\t]//g;
	chop($tale);
	$tale =~ s/,/, /g;
	debug("TALE: ".$tale);
}
if ($movie =~/Undertekster\):[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) {
	$subtitle = $1;
	$subtitle =~ s/[\n\t]//g;
	chop($subtitle);
	$subtitle =~ s/,/, /g;
	debug("SUBTITLE: ".$subtitle);
}
if ($movie =~/Bild:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) {
	$video = $1;
	$video =~ s/[\n\t]//g;
	chop($video);
	$video =~ s/,/, /g;
	debug("VIDEO: ".$video);
}
while ($path eq "") {
	print "Enter the movie path:";
	$path = <>;
	chop($path);
}
$path =~ s/VIDEO_TS.IFO//i;
if ($path !~ /\\$/) {
	$path .= "\\";
}
$path .= "VIDEO_TS.IFO";
while ($type !~ /[123]/) {
	print "Enter type:\n\t1) DVD on Hard-drive\n\t2) DVD\n\t3) DivX\n";
	$type = <>;
}
@moviestypes = ("DVD on Hard-drive","DVD","DivX");
chop($type);
$request = new HTTP::Request 'GET', 'http://www.brafilm.no/img/cover/movie/huge/'.$filmID.'.jpg';
$ua->prepare_request($request);
$response = $ua->request($request);
if ($response->is_success) {
	open IMAGE , ">output/$filmID.jpg";
	print IMAGE $response->content;
	close IMAGE;
} else {
	die "Error retrieving picture";
}
} else {
die "Error retrieving movie with ID $filmID";
}

open OUTPUTFILE, "output/dvddatabase.xml";
@outputfile = <OUTPUTFILE>;
close OUTPUTFILE;

foreach $line(@outputfile) {
if ($line =~ /<Movie/) {
	push (@movies,$line);
}
}
$noofmovies = @movies;

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

open BF, ">output/dvddatabase.xml";
print BF "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<AntMovieCatalog Format=\"35\" Version=\"3.5.0 (2005-05-29)\" Date=\""
.sprintf("%02d.%02d.%04d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec)
."\">\n\t<Catalog>\n\t\t<Properties/>\n\t\t<Contents>\n";
foreach $line(@movies) {
print BF $line;
}
print BF "\t\t\t<Movie Number=\"".($noofmovies+1)."\" Checked=\"True\" MediaType=\"".$moviestypes[$type-1]."\" Date=\""
.sprintf("%02d.%02d.%04d",$mday,$mon+1,$year+1900)."\" Rating=\"$rating\" OriginalTitle=\"$originaltitle\""
." TranslatedTitle=\"$title\" FormattedTitle=\"$title\" Director=\"$director\" Producer=\"$manus\" Country=\"$country\""
." Category=\"$sjanger\" Year=\"$filmyear\" Length=\"$playtime\" Actors=\"$actor\" URL=\"$path\" Description=\"$description\""
." VideoFormat=\"$video\" AudioFormat=\"$audio\" Languages=\"$tale\" Subtitles=\"$subtitle\" Size=\"0\" Disks=\"1\""
." Picture=\"$filmID.jpg\"/>\n";
print BF "\t\t</Contents>\n\t</Catalog>\n</AntMovieCatalog>";	

close BF;

sub debug {
local ($toprint) = @_;
if ($DEBUG==1) {
	print $toprint."\n";
}
}

 

PS! Skriptet er langt i fra optimalisert. Det var noe jeg bare slengte sammen så raskt som mulig, så lenge det fungerte så var jeg fornøyd.

Endret av cyclo
Lenke til kommentar
du gidder ikke lage en kort liten guide på hvor og hvordan jeg skal legge det inn? du kan gjerne skrive det i den tråden, for da slipper andre å lure på det...

 

 

igjen: takk

 

Jeg stikker på juleferie om 5 timer, så jeg har egentlig ikke noe tid å skrive en guide. Men jeg kan fortelle deg såpass at skriptet må du kjøre på kommandolinje (altså det integrere ikke med ant). Du må installere perl for å kunne kjøre det, og om du kjører det på windows må du skifte ut noen av stiene.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...