Spotweb als provider

Door Mar2zz op woensdag 22 juni 2011 14:59 - Reacties (19)
CategorieŽn: Downloaden, Films, Muziek, Newznab, Series, Spotweb, Views: 27.417

In mijn vorige blog over Headphones had ik het al gemeld, Spotweb kan tegenwoordig als provider gebruikt worden voor Sickbeard, Couchpotato en Headphones. Dit houdt dus in dat die programma's de content uit Spotweb kunnen afschuimen op zoek naar posts die voldoen aan de door jou opgegeven criteria en dat vervolgens automatisch binnenhalen, naar Sabnzbd sturen en vervolgens verwerken.

Ik moest ff stoeien hoe ik die api aankreeg, zonder gedoe met .htaccesfiles, zoals op de wiki wordt uitgelegd, want ik kwam tijdens de zoektocht tegen dat .htaccess files not the best way to go zijn (so avoid if possible), dus ik ben verder gaan kijken

.htaccessfiles werken vertragend omdat bij elke pagerequest die file opnieuw geparsed wordt, terwijl je, als je de website goed configureert, je de instellingen bij de start van de server kunt laden zodat ze niet steeds opnieuw gerequest hoeven te worden.

Er is dus een manier waarop je veilig kunt doen en toch gebruik kunt maken van uitzonderingen per websites, zoals bijvoorbeeld alleen voor spotweb de rewrite-engine inschakelen die nodig is om Spotweb in te stellen als Newznab-provider. Newznab is een usenetindexeerprogramma, maar is nu een algemene term aan het worden voor eigengebakken usenet-indexservers.

Apache configureren

In plaats van een htaccesfile te maken met regels kun je beter, als je daar bij kunt, de websiteconfig zelf aanpassen. Dit kan ook per directory, dus het is ook flexibel, en het is eigenlijk nog veiliger dan een .htaccess file, omdat je per definitie buiten het domein om de configuratie doet.

Elke website op een apacheserver staat eigenlijk op een virtuele host. Die host heb je gedefinieerd in /etc/apache2/sites-enabled/blahdieblah (hier naam van bestand of website invullen). In die host geef je een poort op (standaard staat die op 8080 geloof ik) en op die poort op je pc zal de website te benaderen zijn.

Het bestand ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<VirtualHost *:8080>
    ServerAdmin blahblah@gmail.com

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

etc etc etc....
</VirtualHost>


In dit bestand kun je uitzonderingen toevoegen per website/directory die je hebt staan. Wat mensen aanraden om in .htaccessfiles te zetten (wat dus traagheid op kan leveren) hoor je eigenlijk hierin te zetten!

Ik wil voor spotweb de api aanzetten, maar niet voor mijn andere websites. Dat is dan simpel te doen om in het bovenstaande bestand het volgende toe te voegen:

code:
1
2
3
4
5
6
7
8
9
<Directory /var/www/spotweb/>
        RewriteEngine on
        RewriteCond %{REQUEST_URI} !api/
        RewriteRule ^api/?$ index.php?page=newznabapi [QSA,L]
        Options Indexes FollowSymLinks Multiviews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>


Zo kan je ook je websites per directory apart beveiligen op bijvoorbeeld ipadres, zonder gebruik te maken van tig verschillende .htaccesfiles. Je houdt het in 1 bestand, overzichtelijk en bij elkaar. Alleen sudo kan erin muteren op je server. In principe zou het dus zo moeten zijn dat je alleen .htaccess gebruikt als je niet bij bovenstaande configuratiebestand kunt (wat bij veel webservers zo is, maar de meeste mensen zullen spotweb gewoon op de thuisserver draaien).

Na bovenstaande moet de rewriteengine nog aangezet worden en daarna apache herstart worden. Dat is een simpel commando:
sudo a2enmod rewrite && sudo /etc/init.d/apache2 restart


Bovenstaande wordt nu ook meegenomen in de spotwebinstaller uit mijn LaSi-scripts. Daarmee wordt spotweb als een aparte site weggezet in apache. Dit kun je ook zelf doen, door het volgende uit te voeren:
wget http://dl.dropbox.com/u/18712538/Spotweb/spotweb-site
sudo mv spotweb-site /etc/apache2/sites-available/spotweb-site
sudo a2ensite spotweb-site
sudo a2enmod rewrite
sudo /etc/init.d/apache restart


Bovenstaande is succesvol als je surft naar http://server/spotweb/api?t=c en daar xml-output is te zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?xml version="1.0" encoding="utf-8"?>
<caps>
  <server version="0.1" title="Spotweb" strapline="Spotweb API Index" email="spot@web.nl (Spotweb ber)" url="http://laptop/spotweb/" image="http://laptop/spotweb/images/spotnet.gif"/>
  <limits max="500" default="50"/>
  <retention days="900"/>
  <registration available="no" open="no"/>
  <searching>
    <search available="yes"/>
    <tv-search available="yes"/>
    <movie-search available="yes"/>

    <audio-search available="yes"/>
  </searching>
  <categories>
    <category id="1000" name="Console">
      <subcat id="1010" name="NDS"/>
      <subcat id="1020" name="PSP"/>
      <subcat id="1030" name="Wii"/>
      <subcat id="1040" name="Xbox"/>
      <subcat id="1050" name="Xbox 360"/>

      <subcat id="1080" name="PS3"/>
    </category>
    <category id="2000" name="Movies">
      <subcat id="2030" name="SD"/>
      <subcat id="2040" name="HD"/>
      <subcat id="2060" name="Sport"/>
    </category>
    <category id="3000" name="Audio">
      <subcat id="3010" name="MP3"/>

      <subcat id="3020" name="Video"/>
      <subcat id="3040" name="Lossless"/>
    </category>
    <category id="4000" name="PC">
      <subcat id="4030" name="Mac"/>
      <subcat id="4040" name="Phone"/>
      <subcat id="4050" name="Games"/>
    </category>
    <category id="5000" name="TV">

      <subcat id="5030" name="SD"/>
      <subcat id="5040" name="HD"/>
      <subcat id="5060" name="Sport"/>
    </category>
    <category id="6000" name="XXX">
      <subcat id="6010" name="DVD"/>
      <subcat id="6020" name="WMV"/>
      <subcat id="6030" name="XviD"/>
      <subcat id="6040" name="x264"/>

    </category>
    <category id="7000" name="Other">
      <subcat id="7020" name="Ebook"/>
    </category>
  </categories>
</caps>



De api gebruiken
Dit is een schaamteloze copy/paste van de wiki van Spotweb, waar de schrijver van de api, tweaker Nightspirit, al heeft uitgelegd hoe het verder ingesteld moet worden.

Sick Beard

Op de pagina http://url.naar.sickbeard/config/providers/ staat onderaan het onderdeel Configure Custom Newznab Providers. Hier dien je een naam, een URL en een API-key op te geven.
1. Bij Provider Name kun je zelf bepalen hoe je het wilt noemen, bijvoorbeeld Spotweb.
2. Bij Site URL vul je http://server/spotweb/ in (uiteraard na aanpassing aan de eigen omgeving).
3. Bij API Key vul je de API-key van Spotweb in. Deze is in Spotweb te vinden onder Gebruiker wijzigen

CouchPotato
Op de pagina http://url.naar.couchpotato/config/ en klik op Providers. Op die pagina staat het onderdeel Newznab. Hier dien je een host en een API-key op te geven.
1. Bij Host vul je server/spotweb in (uiteraard na aanpassing aan de eigen omgeving).
2. Bij Apikey vul je de API-key van Spotweb in. Deze is in Spotweb te vinden onder Gebruiker wijzigen

Headphones
Op de pagina http://url.naar.headphones/config staat Newznab onder Providers.
1. Vink Newznab aan.
2. Bij Newznabhost vul je server/spotweb in.
3. Bij API Key vul je de API-key van Spotweb in. Deze is in Spotweb te vinden onder Gebruiker wijzigen

Afsluiting
Na bovenstaande wordt alle content die met Spotnet wordt gepost beschikbaar voor Sickbeard, Couchpotato en Headphones. Gezien de hoeveelheid spots per dag is dat een mooie toevoeging voor alle 3 de programma's. Het grootste voordeel is natuurlijk dat Spotweb een gratis provider is, al zijn er daar meer van binnen de programma's, niet iedereen was er vroeg genoeg bij om zich daar te registreren en die providers hebben (tijdelijke) registratiestops of ze vragen geld voor het downloaden van nzb's.

Nadeel aan Spotweb is dat er weinig moderatie is en dat er niet standaard gepost wordt volgens een bepaalde norm, of de scene-standards, zoals Usenetprogramma's die vaak verwachten, bijvoorbeeld Game.of.Thrones.S01E10.720p.HDTV.DD5.1.x264-EbP. Toch, als je muziek zoekt van dees of geen, in Spotnet worden veelal meer dan 100 muziekposts per dag gedaan. Veel dubbelopjes en waardeloze troep, maar dat juweeltje waar jij naar zoekt zou er maar net voorbij komen... Headphones zou 'm dan voor je oppikken en naar Sab sturen...

Dit mag echter de pret niet drukken, Spotweb bied aan en de content is dus (deels) beschikbaar en te begrijpen door Sick, Couch en Head. Voor mensen die achter het net hebben gevist bij registraties op andere gratis indexers is dit een mooi, gratis alternatief voor de betaalde indexers. Have fun with it...

Een disclaimer:
Dat van die .htaccessfiles heb ik niet zelf verzonnen, info bij elkaar geraapt van apachesite zelf en her en der op het net. Dit soort zaken is relatief nieuw voor me, dus als iemand een andere mening is toegedaan dan hoor ik het graag. Ik kan eventueel bronnen/links spammen als argumentatie voor het standpunt dat .htaccess ten alle tijde vermeden zou moeten worden tenzij niet anders kan.

Volgende: Subsonic 08-'11 Subsonic
Volgende: Headphones 06-'11 Headphones

Reacties


Door Tweakers user Julianl, woensdag 22 juni 2011 16:16

Geniaal! Dit is wel precies waar ik naar zocht. Ik was al begonnen met .htaccess files, maar wilde nog niet helemaal lukken. Bovendien ging ik films die CP niet kon vinden soms handmatig toevoegen aan Sab...

Bedankt voor de tip, ik ga er vanavond mee aan de slag!!

Door Tweakers user MikeOO, donderdag 23 juni 2011 15:16

Complimenten voor je blog. Ziet er super uit en daar zullen we veel leesplezier aan beleven.

Was al even een het proberen maar voor de Synology is het allemaal weer anders. Loop dus direct al vast. :) Maar goed daar zal de komende tijd in het spotweb forum weer mee info over komen denk ik.

Door Tweakers user Mar2zz, donderdag 23 juni 2011 15:53

Dank voor het compliment :)

Synology is inderdaad verhaal apart... Grootste kenner hier op tweakers van Synology's is volgens mij Brickman. Ik denk alleen niet dat hij ook iets met Spotweb heeft gedaan, gezien zijn Synology-pagina op Dropbox.

Door Tweakers user Paradox, donderdag 23 juni 2011 16:41

Geniaal, alleen waar staan de files op een Synology ;)

Door Tweakers user Nightspirit, donderdag 23 juni 2011 17:28

Voor synology staat the config op /usr/syno/apache/conf/httpd.conf-user

Ik raad het af: bij iedere DSM upgrade wordt dit bestand overschreven en kun je dus weer alles opnieuw erin gaan zetten. De .htaccess van de wiki kun je 1-op-1 overnemen en blijft werken.

Dat het een vertraging op zou leveren om met .htaccess te werken... In theorie klopt het wel wat je zegt, maar ik mag dood neervallen als iemand het verschil KAN merken met de .htaccess van 3 regels op de wiki :+

[Reactie gewijzigd op donderdag 23 juni 2011 17:37]


Door Tweakers user Mar2zz, donderdag 23 juni 2011 19:26

Je merkt het inderdaad niet, maar het is er wel, verwaarloosbaar... de resultaten wisselen een beetje, maar het verschil is ~0,050 seconde per pagerequest (op subcats)

Tel uit je winst, 0,050 seconde per pageview, dat is bij 100 pageviews al 5 seconden hoor :z

Zoveel maakt het niet uit dus... :|

Door Tweakers user CH4OS, donderdag 23 juni 2011 20:19

Waarom heb je per se een rewrite rule nodig naar /spotweb/api als ik vragen mag? Je kunt toch gewoon de gehele URL opgeven lijkt me? :?

Door Tweakers user brid, donderdag 23 juni 2011 20:23

Goed blog, gisteren aan het spelen geweest en het werkt nu redelijk.
Krijg alleen bij de test een stuk minder catogorys terug:

code:
1
2
3
4
5
6
7
8
9
<categories>
<category id="1000" name="Console"/>
<category id="2000" name="Movies"/>
<category id="3000" name="Audio"/>
<category id="4000" name="PC"/>
<category id="5000" name="TV"/>
<category id="6000" name="XXX"/>
<category id="7000" name="Other"/>
</categories></caps>



Ook wil de api key niet werken, zonder werkt prima maar zodra ik er 1 gebruik krijg ik een invalid key error

Enig idee hoe je het filter uitbreid?

[Reactie gewijzigd op donderdag 23 juni 2011 20:27]


Door Tweakers user Mar2zz, donderdag 23 juni 2011 20:26

@Chaos, dat moet je aan Nightspirit vragen, ik weet niet waarom, ik heb dat van hem overgenomen (niet in verdiept wat het nou precies doet). Wat is volgens jou de hele url dan?

@brid:
klopt, ik zit zelf op een spotweb die fixes aan de api heeft die nog niet in de normale spotweb zitten. (ik gebruik Nightspirit zijn fork). Je moet dus even wachten tot Nightspirits merge-requests zijn opgenomen in de normale spotweb-repository en dan ziet je xml hetzelfde eruit als hierboven.

Door Tweakers user brid, donderdag 23 juni 2011 20:32

ahh oke, zie dat Nightspirit al een pull request heeft de gaan.
Even in de gaten houden :)

Door Tweakers user Nightspirit, donderdag 23 juni 2011 20:33

@CptChaos: Ieder programma die een newznab-api opvraagt doet dat met opgegeven.server/api?request. Of wil jij al die programma's even aanpassen, speciaal voor Spotweb? ;)

@brid Van gebruikers 1 (anonymous) & 2 (admin) mag de api-key niet gebruikt worden, voor de rest zou het gewoon moeten werken.

Door Tweakers user Mar2zz, vrijdag 24 juni 2011 19:45

brid schreef op donderdag 23 juni 2011 @ 20:32:
ahh oke, zie dat Nightspirit al een pull request heeft de gaan.
Even in de gaten houden :)
't Zit in de master, je kunt los :p

Door Tweakers user brid, vrijdag 24 juni 2011 21:15

Heb hem net bijgewerkt en krijg nu netjes hetzelfde resultaat.
Voor de api key had ik al een aparte gebruiker gemaakt, omdat ik al zoiets vermoede.

Na het vinden van een knip plak fout van de api key en nog een aparte groep die API key toestaat werkt het nu met de nieuw aangemaakt gebruiker. Wel raar dat het niet werkte als deze alleen lid was authenticated users....

Door Tweakers user Mar2zz, vrijdag 24 juni 2011 22:11

Ik heb van mijn eigen user een admin gemaakt en daarmee werkte het meteen. Wist niet dat er limitations waren wat dat betreft.

Wat heb je extra moeten doen om het werkend te krijgen? Dan voeg ik dat nog even toe aan de blog, en het zou ook op de Wiki handig zijn.

Door Tweakers user Mr. Happy, dinsdag 28 juni 2011 22:35

Ik heb je rewrite gebruikt en de output is idd prima, alleen de nzb's leveren de volgende melding op in sabnzbd
http://spotweb.domein.nl/...9a081402a3d5229e116f72ade - URL ophalen mislukt; Onbruikbaar NZB bestand, Opnieuw
Wanneer ik deze link plak in IE/FF/... dan kan ik de nzb downloaden en opslaan in de blackhole van sabnzbd en kan ie wel gewoon gedownload worden...

Weet jij hoe (ik) dit kan (oplossen)??

Door Tweakers user BillsGate, woensdag 29 juni 2011 11:28

Hoe staat de NZB-afhandeling ingesteld voor de gebruiker in Spotweb?

--

Ik kreeg de api in eerste instantie niet werkend, bleek dat ik al in maanden geen spotweb-update gedaan had.

Een nieuwe versie van git en een database-update verder, werkt alles perfect. Jammergenoeg zijn de posts van voor de update nu niet meer zichtbaar in spotweb...

Door Tweakers user Mar2zz, woensdag 29 juni 2011 14:30

@BillsGate, je kunt de gitpull wel cronjobben, dan vergeet je het ook niet, voor wekelijks:
crontab -e
@weekly cd /var/www/spotweb && git pull && /usr/bin/php upgrade-db.php


@ Mr. Happy:
Als de output van de xml werkt dan weet ik niet hoe je jouw fout moet oplossen. Wellicht dat Nightspirit het weet, ik heb in het spotwebtopic al een vraag erover gesteld.

Door Tweakers user BillsGate, woensdag 29 juni 2011 15:18

Thnx!

@ Mr. Happy:
Als je in Spotweb op het groene download-pijltje druk bij een spot, download SabNZB hem dan wel?

Door Tweakers user Mar2zz, woensdag 29 juni 2011 21:03

MikeOO schreef op donderdag 23 juni 2011 @ 15:16:
Complimenten voor je blog. Ziet er super uit en daar zullen we veel leesplezier aan beleven.

Was al even een het proberen maar voor de Synology is het allemaal weer anders. Loop dus direct al vast. :) Maar goed daar zal de komende tijd in het spotweb forum weer mee info over komen denk ik.
Wellicht had je het al gezien in het spotwebtopic, ik heb een installscript gemaakt voor spotweb op synology's. Hier staat er meer over:
https://github.com/spotwe...stalleren-op-Synology-NAS

Dit script zorgt er optioneel ook voor dat de api ingeschakeld wordt zodat je spotweb als provider kunt gebruiken.

Reageren is niet meer mogelijk