[s]Periscope[/s] Subliminal!

Door Mar2zz op donderdag 13 oktober 2011 19:49 - Reacties (10)
CategorieŽn: Downloaden, Periscope, Series, Views: 14.492

Periscope is niet meer. Tenminste sinds 7 juli 2011 geen updates meer, en dat is voor Periscope's begrippen lang. Ik vroeg me ook altijd al af hoe die Patrick dat zo lang alleen vol hield, een programma met zoveel issue's steeds maintainen. Regelmatig werd er weer een website geblocked omdat er tig mensen die websites liepen te hameren met Periscope. Bierdopje kreeg ware DDOS aanvallen te verduren van subtitle-zeurpietjes en heeft tot 2 maal toe de door periscope gebruikte api-key moeten blokkeren zodat de Bierdopje-plugin onbruikbaar werd.

Doordat ook andere subtitlesites afhaakten en vriendelijk verzochten hen buiten beschouwing te laten bij het ontwikkelen van Periscope-plugins werd Periscope steeds onbetrouwbaarder, terwijl het nog niet eens een final state van ontwikkeling had. Gelukkig is nu iemand anders een Periscope afgeleide aan het doorontwikkelen, en dat is Diaoul, die bouwt aan het programma Subliminal.

Wat is Subliminal?
Subliminal, is, net als Periscope een programma geschreven in python dat naar ondertiteling zoekt in de opgegeven voorkeurstalen. Het werkt vanaf de commandline, maar het is ook al in een Sickbeard geforked. Dat wil zeggen dat Subliminal in de interface van Sickbeard is verwerkt en dat van daar uit naar ondertitels gezocht kan worden. Diaoul heeft een pull-request neergezet voor Midgetspy, de maker van Sickbeard, en hopelijk gaat deze spoedig Subliminal goedkeuren voor volledige integratie in de masterbranch van Sickbeard.

De masterbranch wordt door 99% van de Sickbeard-gebruikers op de pc gezet, dus een integratie levert gemak aan de massa. Misschien gaat dan ook de ontwikkeling wat sneller. Er staan nog veel Subliminal-issues open op github, en als je het programma draait vanaf de commandline dan kun je dat het beste doen na het testen van elke plugin apart, en kijken welke werkt zonder errors (hint: 't zorgt ervoor dat bier niet uit je flesje valt)

Subliminal installeren
Ik ga nu bewust niet elk commando helemaal voorkauwen. Ik ben bang dat het, als het te makkelijk wordt, dat er weer subzeurpietjes komen die, doordat ze niet helemaal weten wat ze doen, ervoor zorgen dat de api-keys van sites weer ingetrokken worden. Maar het is ook makkelijk genoeg, kijk in andere blogs om te zien hoe je bijvoorbeeld een lokale clone van github-sources maakt.

Subliminal kan geinstalleerd worden met de python-setuptools. Op je linux is dat wel binnen te halen met je packagemanager ("insert packagemanager" install python-setuptools").

Vervolgens heb je de source nodig van github. Die gitclone je met het git subliminal-adres. Vervolgens ga je de map van subliminal in en doe je "pip install subliminal". En hoppa! daar is je nieuwe periscope geinstalleerd!

Subliminal gebruiken
Typ subliminal --help voor alle mogelijkheden van Subliminal. Je kunt hele specifieke commandlines maken. Voor bijvoorbeeld Bierdopje heb je een map nodig die als cachefolder gebruikt kan worden.

Maar omdat je niet een subzeurpiet wilt zijn moet je ook iets veranderen aan de manier waarop je je downloads laat afhandelen. Je wilt Bierdopje niet lastig vallen met 400 verzoeken binnen een minuut voor tvshow afleveringen die zonder subs zitten en die ook nooit subs zullen krijgen omdat je ze al gerenamed hebt.

Daarom zijn er een paar geboden voor de cronjobbers onder ons.
1e gebod: Zoek niet te vaak!
Stel de periode tussen het zoeken ruim in. Elk uur is echt niet nodig. Bedenk dat je elke zoektocht sites bandbreedte, geheugen en cpu-power afneemt. Het zal niet schrikbarend veel zijn per verzoek, maar je bent niet de enige die het doet. Doe elke 6 uur ofzo, dat is 4x per dag. Ik kreeg mijn subs altijd netjes binnen met @DAILY in mijn cronjob.
0 */6 * * *  subliminal "opties"


2e gebod: Rename niet!
Stel Sickbeard, of whatever tvshow-manier van downloaden je ook gebruikt, zo in dat de originele releasenamen, zoals ze van internet komen dus, ook blijven bestaan.
Dus geen renaming! Je zult daar geen subs voor vinden via Bierdopje. Alleen via Opensubtitles.org, die via hashing zoekt in plaats van bestandsnamen.

3e gebod: Zet bij nieuwe bestanden ook de nieuwe datum neer!
Daarvoor gebruik je op linux het commando touch, dat zorgt ervoor dat het bestand de datum van nu krijgt, ook al komt het binnen met een tijdsstempel van het moment waarop de releasegroup dat bestand heeft gemaakt.

Dan kun je daarna met een "find /TVShows -mtime 14"-beperking in je cronjob de sites alleen lastig vallen met bestanden die je in de afgelopen 2 weken hebt gedownload. De kans is toch uberklein dat er na die 2 weken alsnog subs worden gevonden. Of doe desnoods een maand als je daarover twijfelt. Doe desnoods een 2e cronjob eens in de week voor files die ouder zijn dan 14 dagen.

Recursief mappen en bestanden de datum van vandaag geven:
find /pad/naar/map | xargs touch


4e gebod: Gebruik de -f optie niet met Subliminal.
Die zal subtitles die je al hebt overschrijven met dezelfde door ze nogmaals te downloaden, nergens voor nodig toch?

5e gebod: Gebruik de goeie plugin bij het soort media.
Ga niet Bierdopje gebruiken en verwijzen naar je map met films! Dat werkt gewoon niet. Wees niet lui en maak 2 aparte commands aan, 1 voor je filmmap en 1 voor je seriemap. Subliminal kan specifieke plugins laden met -p BierDopje of -p OpenSubtitles.

Afsluiting
Als je je aan bovenstaande geboden houdt dan kunnen we nog lang plezier hebben van Subliminal. Als we dat niet doen, dan gaan de subtitle-sites mopperen tegen Diaoul en dan zal ie er ook gauw de brui aan geven. Stel je toch eens voor dat dat allemaal weer met het handje moet... (gelukkig is er nog altijd XBMC Subtitles ;) )

Subliminal zal na installatie voor je zoeken met dit commando, dat je kwijt kunt in een postprocessingscript, of gewoon de terminal, of natuurlijk in een cronjob (denk aan de geboden!)

Zoeken op Bierdopje naar Nederlandse en Engelse subs voor al mijn series in de map Dexter en alle daaronder liggende mappen:
subliminal -l 'nl' -l en --cache-dir=/pad/naar/subliminal/cache -m -p BierDopje "/home/user/Disk2/TVShows/Dexter"

Typ subliminal --help om je eigen command line te maken. Er zijn meer opties.

In een postprocessingscript kun je het volgende zetten:

code:
1
subliminal -l 'nl' -l 'en' --cache-dir=/pad/naar/cache -p BierDopje "$1"


Dit postprocessen kun je ook door Sickbeard laten doen in plaats van Sabnzbd, zoek in Sickbeards config.ini naar "extra_scripts = " en zet daarachter het pad naar een bashscriptje met bovenstaande regel erin (en natuurlijk #!/bin/sh op de eerste regel).

Succes.

Volgende: Unity; Canonical pusht een interface 10-'11 Unity; Canonical pusht een interface
Volgende: Packaging voor Sickbeard, CouchPotato en Headphones 10-'11 Packaging voor Sickbeard, CouchPotato en Headphones

Reacties


Door Tweakers user croontje, donderdag 13 oktober 2011 21:06

Ik snap eigenlijk niet waarom bierdopje ook niet met hashes begint :s
Toch veel beter dan op filenames te vertrouwen ...

Door Tweakers user joker1977, vrijdag 14 oktober 2011 07:29

Zolang Bierdopje niet gebruik maakt van hashing wacht ik wel op het moment totdat er een subtitle-tool of zoiets in de officieele Sickbeard-branch komt. Mogelijkerwijs kan je dan de subtitle downloaden op basis van filenames waarna de post-processing de rename ook kan doen in plaats van 'je hardeschijf scannen voor nieuwe subtitles'.

Periscope werkt bij mij overigens 'prima': Ik zoek enkel naar EN subtitles op OpenSubtitles en dat werkt prima (door de hash-methodiek)

Door Tweakers user Mar2zz, vrijdag 14 oktober 2011 07:56

Opensubtitles is voor series heel erg ongeschikt, vooral als je 'bij' bent, en series kijkt in de week nadat deze beschikbaar kwamen op het i'net. Daarvoor ben je dus wel afhankelijk van sites zoals Addi7ted en Bierdopje.

Periscope heeft bij mij ook altijd nog subs binnengehaald, voor films, en als ik oudere seizoenen binnenhaalde, inderdaad via Opensubtitles. Opensubtitles heeft het mooiste systeem, dat hashing is geniaal, maar voor subtitle-posters is dat allemaal weer een handeling extra, volgens mij moet je daarvoor verplicht uploaden met het programma van opensubtitles om die hash erbij te krijgen. Dat lijkt me ook de verklaring voor het vaak late niet meestal niet complete aanbod van Opensubtitles.org.

De rename is voor xbmc-gebruikers niet interessant, aangezien XBMC van zichzelf in de library mode de namen opschoont en ontdoet van releasegroup-tags enzo.

Door Tweakers user CH4OS, zondag 11 december 2011 23:22

Vervolgens heb je de source nodig van github. Die gitclone je met het git subliminal-adres. Vervolgens ga je de map van subliminal in en doe je "pip install subliminal". En hoppa! daar is je nieuwe periscope geinstalleerd!
Ik heb de source gedownload, maar ik zie geen pip en kan het ook niet uitvoeren (foutmelding is dan ook "command not found". Ik gebruik nog altijd Debian. Wat moet ik nu doen?

Door Tweakers user CH4OS, zondag 11 december 2011 23:33

Heb het al gevonden, moet even zelf handmatig "python setup.py install" doen.

Door Tweakers user CH4OS, zondag 11 december 2011 23:35

Ah en ik had nog geen apt-get install python-pip gedaan. ;)

Door Tweakers user CH4OS, zondag 11 december 2011 23:45

Blijf wel lekker gaan zo, hope you don't mind. Ik heb Subliminal eindelijk werkend, alleen heb ik mijn series en films e.d. op mijn Windows share staan... Ik heb middels een CIFS mount een verwijzing op mijn Linux bak ervoor, met uiteraard lees- en schrijfrechten e.d. op de map. Echter krijg ik de melding dat het pad naar de map, om precies te zijn /w2008/series niet unicode is, is daar wat aan te doen?

Door Tweakers user tinyt, donderdag 5 april 2012 22:58

Ik ben een beginnende linux gebruiker, ik heb subliminal zonder veel moeite draaiende gekregen, maar ik snap niet hoe ik die "find /TVShows -mtime 14"-beperking succesvol toevoeg aan mijn cronjob. Ik wil ook niet nutteloos scannen voor oude dingen, kan iemand een voorbeeldje posten hoe dat in elkaar zit? bedankt.

Door Tweakers user RudolfR, zondag 29 april 2012 18:57

CLI-interface is veranderd sinds het aanmaken van deze blog;
ik doe het n zo.
subliminal -m -l nl -l en -s bierdopje /mnt/media/series/

Als je slim wil gaan doen met find:

find ./ -type f \( -iname \*.avi -o -iname \*.mkv \) -and -mtime -14 | xargs subliminal .....

Bij mij komen ze dan in de map waar ik het commando uitvoer, niet in de map bij de serie.
Niet helemaal zo als ik wil...

Door Tweakers user Eagleman7, zaterdag 8 juni 2013 20:10

De locaties van de folders moeten nog worden aangepast.

Subliminal in combinatie met cronjobs ( zodra er een subtitle gevonden is wordt er niet meer gezocht naar nieuwe omdat de datum veranders wordt van het bestand ):
#!/bin/bash
cd "${1%/*}" || exit
/usr/local/bin/subliminal -l 'nl' --cache-dir=/tmp/ -s bierdopje "$2" 2>&1 | tee "/scripts/media/processing/postpost"

srtfile=$(sed -n '/ from bierdopje/{s///p;q;}' /scripts/media/processing/postpost)
dest=${1%.*}.srt


if [ -n "$srtfile" ]; then
mv "$srtfile" "$dest"
chmod 660 "${dest}"
touch -d "2012-11-8" "$1"
touch -d "2012-11-8" "$dest"
fi
En een scriptje voor sickbeard dat er voor zorgt dat er automatish subtitles worden bij gedownload nadat een serie gedownload is.

Sickbeard:
extra_scripts = /scripts/media/postliminal
cd "${1%/*}" || exit
/usr/local/bin/subliminal -l 'nl' --cache-dir=/tmp/ -s bierdopje "$2" 2>&1 | tee "/scripts/media/processing/postpost"

srtfile=$(sed -n '/ from bierdopje/{s///p;q;}' /scripts/media/processing/postpost)
dest=${1%.*}.srt


if [ -n "$srtfile" ]; then
mv "$srtfile" "$dest"
chmod 660 "${dest}"
touch -d "2012-11-8" "$1"
touch -d "2012-11-8" "$dest"
fi

[Reactie gewijzigd op zaterdag 8 juni 2013 20:12]


Reageren is niet meer mogelijk