Olav Andreas Lindekleiv

Playstationspill.net

Automatiske opptak med Altibox' programguide

Altiboxkunder kan nå starte opptak av TV-programmer via et webinterface på tvguide.altibox.no. Dette er egentlig en veldig grei ekstratjeneste, men dessverre finnes det ikke noen mulighet for å ta opp alle programmer fra en serie. Siden jeg ofte glemmer å sette på opptak manuelt, har jeg laget et Pythonskript som gjør jobben:

#!/usr/bin/env python
# coding: utf-8

import re
from time import sleep

# last inn mechanize Browser (http://wwwsearch.sourceforge.net/mechanize/):
from mechanize import Browser

# programmer som skal tas opp:
opptak = [
    'Mythbusters',
    'Time Warp',
]

br = Browser()
br.open('https://tvguide.altibox.no/login.html') # åpne loginsiden
br.select_form(name='f') # velg loginformen
br['partnerid'] = ['1021',] # velg "agdre breiband"
br['j_username'] = '00000000' # brukernavn
br['j_password'] = '0000' # passord
loggedIn = br.submit() # logg inn
src = loggedIn.read()

sok = re.compile("return prg\('([0-9]+)','([A-Z0-9-]+)','([0-9.]+)'\)\" >([A-Za-z0-9 -&;:\"'\\/\(\)]+)")
programmer = re.findall(sok, src)

# for gjennom programmene vi fant i kilden, og ta opp det som er interessant:
for info in programmer:
    navn   = info[3]
    for prog in opptak:
        if navn == prog:
            kanal   = info[0]
            progId  = info[1]
            dekoder = info[2]
            br.open('https://tvguide.altibox.no/confirmAction.html?tvChannelId='+kanal+'&tvProgramId='+progId+'&actionName=SCHEDULE_RECORDING&stb='+dekoder) # starte opptak
            sleep(1) # vær snill med serveren, pause mellom hvert opptak

Du legger inn ditt brukernavn og passord, og velger din underleverandør (i mitt tilfelle Agder Breiband, id 1021, og legger inn programmer du vil ta opp i lista "opptak". Du må ha "mechanize" installert for å bruke skriptet, se lenke i koden.

20. Des, 2009 kl. 20:06
» qwerty den 22.12.2009 kl. 10:14

Hei, jeg synes dette virket veldig interessant, og testet å kjøre dette scriptet fra min Ubuntu maskin. Tilsynelatende kjører det uten feil, men ingen opptak blir registrert. Skyldes dette at jeg har mer enn en dekoder å velge mellom i tvguiden?

» qwerty den 22.12.2009 kl. 12:20

Har forsøkt å kjøre en debug. Ser ut som om scriptet aldri finner programmet som er definert under "opptak". Har testet med forskjellige programmer fra forskjellige kanaler. (Pdb) > /home/qwerty/opptak.py(25)<module>() -> programmer = re.findall(sok, src) (Pdb) > /home/qwerty/opptak.py(28)<module>() -> for info in programmer: (Pdb) --Return-- > /home/qwerty/opptak.py(28)<module>()->None -> for info in programmer: (Pdb) --Return-- > <string>(1)<module>()->None (Pdb) The program finished and will be restarted

» Olav den 31.12.2009 kl. 00:44

Hei, qwerty! Selv har jeg to dekodere, en med opptaksmulighet, og en uten. Er du kunde hos Agder Breiband? Hvis ikke må du nok endre IDen o br['partnerid']. Jeg har et GUI i tankene, men har ikke fått tid til å jobbe mer med det enda. Oppdateringer vil bli postet her, så følg med fremover. :-)

» qwerty den 02.01.2010 kl. 17:50

Jeg er Lyse-kunde, og har endret til riktig ID. Finnes det noen måte å finne ut hvor det feiler? Er desverre ingen programerer selv :)

Kommentarer deaktivert.