NRK som filsystem
Oppdatering: Koden er kopiert over til eget prosjekt på GitHub, benytt informasjon på GitHub for å komme i gang. Denne postingen er utdatert.
Så var det laget; tilgang på NRK sin nett-TV som om tilgangen til innholdet skulle ligge lokal. I mitt forsøk på å gjøre om NRK Nett-TV til et virtuelt filsystem har jeg valgt å bedrive “screen scraping” av nettsidene, og ender opp med én spilleliste for hvert program som er lagt ut.
Jeg har valgt å benytte Python, sammen med modulene Fuse-Python og BeautifulSoup, så dette kan man sette opp på sin egen maskin som kjører Linux eller MacOS.
Filene er lagt ut i kildekodekontrollen på GitHub, og er delt opp i to filer:
- nrk.py – Bibliotek for å aksessere NRK Nett-TV
- nrkfs.py – Koden som oppretter og fórer det virtuelle filsystemet
For å montere filsystemet kjører man enkelt og greit:
./nrkfs.py nrk
Filen må være kjørbar, og “nrk” vil i dette tilfellet bli mappen som skal være monteringspunktet, denne mappen må allerede være opprettet. Gevinsten er ikke vanskelig å forestille seg:

Det er bevisst ikke opprettet noen debian-pakke eller egg-pakke av dette lille prosjektet enda, det får komme etter litt mer testing om det skulle være noen interesse for det.
Oppdatering: Debian-pakke er tilgjengelig for nedlasting fra GitHub sammen med instruksjoner for installasjon.
Håper noen har ønske om å teste dette ut og kan komme med tilbakemeldinger, er svært interessert i det som ikke måtte fungere.
2009
Informasjonen her er utdatert, følg heller instruksjonene som er å finne på Github.
Instrukser for å installere under Ubuntu (forutsetter superbrukertilgang gjennom sudo):
[Åpne en terminal i hjemmemappen]sudo aptitude install -y fuse-utils libfuse2 python-fuse python-beautifulsoup subversion
svn co http://svn.averlend.com/public/nrkfs/trunk nrkfs
chmod u+x nrkfs/nrkfs.py
mkdir nrk
./nrkfs/nrkfs.py nrk
For å montere opp etter restart kjøres kun den siste linjen. Lykke til!
2010
Dette er jo helt fantastisk Erlend! Fikk feilmelding på “sudo dpkg -i nrkfs_0_3.deb”, men det ordna seg med “sudo aptitude install nrkfs”.
2010
Jepp, det kommer en feilmelding, men siden det gjør jobben med å forberede til at pakken og avhengigheter deretter kan installeres så blir det slik. Skulle gjerne sett at det var et annet alternativ, men det får jeg se nærmere på siden.
2009
Genialt, Erlend!
Men kunne du ikke opprettet et prosjekt på github for nrkfs slik at andre kan være med på å utvikle prosjektet videre? Jeg kunne f.eks. tenke meg at man ikke bare fikk tilgang til .asx-filene, men direkte tilgang til de underliggende MMS-strømmene som man så kan mate inn i f.eks. VLC eller libmms for å lagre lokalt.
2009
@Asbjørn: Gjerne det, skal se til at det blir opprettet.
2009
Artig konsept! Testa det, og får opp filsystemet, men vlc gir meg feilmeldinger av typen:
Unable to open ‘/home/atle/nrk/Mat/Smaken av Danmark/NRK – Norsk Rikskringkasting’
Unable to open ‘/home/atle/nrk/Mat/Smaken av Danmark/’
Unable to open ‘/home/atle/nrk/Mat/Smaken av Danmark/09-07-29 Smaken av Danmark – Dansk matserie. Den danske kokken Claus Meyer tar oss med på en kulinarisk rundreise i matlandet Danmark.’
Unable to open ”
Unable to open ‘/home/atle/nrk/Mat/Smaken av Danmark/’
Unable to open ‘/home/atle/nrk/Mat/Smaken av Danmark/’
noen tips?
2009
Så var det det med å mase før man har testet… Kaffeine ser ut til å takle saken mye bedre! Dette er jo en helt genial løsning for en mediesenter pc! Takker for at du deler denne !
2009
[...] http://blog.averlend.com/2009/05/23/nrk-som-filsystem/ a few seconds ago from IdentiTwitch [...]
2009
Ooohh, finfin. Må prøve ut. Du er ferdig med studiene, er du ikke? For du står fremdeles oppført som stud.ass i IT2103.
ps. http://www.ntnutimeplan.no/ fungerer ikke.
2009
Prøv å gå til nrk/Dokumentar/Brennpunkt/Brennpunkt 2009/ da får du feilmeldinger, og scriptet klarer ikke å plukke ut URLer korrekt.
2010
Jeg har flere brukere på maskinen og ønsket derfor dette tilgjengelig for alle.
Derfor prøvde jeg dette:
- Installerte DEB pakken
- Opprettet en mappe /nrk som har full tilgang til alle (chmod 777 /nrk)
- Åpnet et terminalvindu og laget en fil med følgende kode:
#! /bin/sh
nrkfs.py /nrk
Deretter gjorde jeg den kjørbar:
sudo chmod 755 /etc/init.d/nrk
Så la jeg den inn slik at den startes hver gang maskinen starter:
sudo update-rc.d nrk defaults
Dette fungerer i og for seg helt greit bortsett fra en ting: Det er kun brukeren som kjører monteringen som får tilgang uavhengig av hvordan jeg setter rettighetene.
Er det mulig å fikse dette på noen måte?
2010
Jeg har prøvd å finne ut av dette tidlige, og da fant jeg at om jeg legger på alternativet “allow_other” vil dette fungere. Mitt forslag til hvordan montere, som testet hos meg:
nrkfs.py -oallow_other /nrk/Håper dette fungerer også for deg, si ifra om det ikke gjør det.
2010
En helt annen måte å montere NrkFS er ved å legge til denne linjen i fstab:
/usr/bin/nrkfs.py /nrk fuse allow_other,auto 0 02010
Jeg har montert opp nrkfs på en Ubuntu server, og det virker fint, men er det mulig å dele det videre til andre PC-er i huset via Samba? Jeg har prøvd men får “not accessible” og “The handle is invalid” når jeg prøver å mappe den opp fra Windows, og “Bad file descriptor” fra Ubuntu Netbook.
2010
Jeg vil tro dette problemet er relatert til problemer jeg har med å kunne gjøre filsystemet tilgjengelig for en Apache HTTP-server. Om man monterer NrkFS i en mappe under /var/www blir denne mappen usynlig og utilgjengelig, om man benytter sshfs på samme plass går det fint. Siden jeg ikke finner noen forskjell mellom filene (med siste oppdatering i dag) når jeg kjører “stat” er jeg usikker på hva det er som skiller disse fra hverandre.
2010
Dette er ordnet i versjon 0.3, var irriterende at dette ikke fungerte når alt kom til alt… =D
2010
Helt nydelig! Jeg har bare installert pakken, montert og åpnet noen få filer, men alle har så langt fungert uten problemer. Tilgang til NRK-arkiv via filsystemet er jo rett og slett konge for meg som ser ganske mye på NRK’s innhold på nett, men (som flere) alltid må krangle med NRK’s nettsider.
2010
Det gleder med at du liker programvaren, det er godt å se at stadig flere finner nytte i programmet jeg laget for å få tilgang til Dagsrevyen uten å krangle med nettleseren. Så snart jeg begynner å få overskudd av tid vil også direkte-strømmene komme på plass i programvaren slik at den kan i enda større grad erstatte nrk.no.
2010
Dette er veldig kult! Dessverre hakker strømmen veldig for meg, og det tar lang tid å buffre. Men det er vel linja mi sin skyld.
Det som hadde vært enda mye kulere hadde vært om du kunne laget en Totem-plugin for dette, så vi kunne fått NRK inn der på samme måte som vi i dag får BBC: http://people.canonical.com/~cjwatson/totem-bbc-2.png
2010
I dag er båndbredden som kommuniseres til NRK sine servere noe høy, noe det er ønskelig å kunne justere fra neste utgave. Jeg opplever også at det tidvis er hakking i streaming, til tross for veldig bred båndbredde, noe jeg tror skyldes last hos NRK eller hos nett-leverandør.
Plugin til Totem er en god idé, og jeg ser at man kan bruke Python til også dette. En del av programmet er skrevet for å kunne gjenbrukes, og dette kan brukes til dette formålet. Jeg har dessverre ikke tid til å titte på dette enda, men jeg tar det med meg som en issue på Github.
2010
Strømmen hakker ikke i det hele tatt for meg. Jeg har en liten HP-tynnklient med Ubuntu Netbook Remix som akkurat klarer å spille av en rippet DVD, men ikke HD-innhold. Båndbredden er bra, så kanskje derfor.
Kanskje et Personal Packet Archive (PPA) på Launchpad hadde vært tingen etterhvert? Så kan folk få oppdaterte utgaver etterhvert som feilfikser og utvikling går sin gang.
2010
Ja, en PPA hadde vært supert!
2010
Å få pakken inn i en pakkebrønn ville absolutt være en fordel. Skal se om jeg kan få dette på plass etterhvert.
2010
runesole@rubuntu:~$ ./nrkfs/nrkfs.py nrk
Traceback (most recent call last):
File “./nrkfs/nrkfs.py”, line 18, in
root = nrk.getRoot()
File “/home/runesole/nrkfs/nrk.py”, line 78, in getRoot
root.addChildren(getThemes())
File “/home/runesole/nrkfs/nrk.py”, line 101, in getThemes
ul = request(“http://www1.nrk.no/nett-tv/”).findAll(id=”ctl00_ucTop_themes”)[0]
IndexError: list index out of range
runesole@rubuntu:~$
Ka no?
2010
Dette var jo så lett og greit sist jeg prøvde. Men nå får jeg bare feilmelding:
The folder contents could not be displayed.
You do not have the permissions necessary to view the contents of “nrk2″.
Vet du hva som skjer?
2010
Jeg kan tenke meg at monteringen er gjort med en annen bruker enn den som aksesserer mappen. Jeg har skrevet noe om dette under installasjon om hvordan man kan montere for flere brukere på en gang. Dersom det da fortsatt ikke fungerer trenger jeg noe mer informasjon om hvordan problemet oppstår.