Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/08/2013, à 15:10

gatzy

Enregistrer une émission télé sur une clé USB

Bonjour
Je viens de m'apercevoir que, lorsque je suis connectée sur un Wifi public, le débit n'est pas suffisant pour visionner des émissions télé en replay.

Comme je suis souvent en déplacement la semaine, j'aimerais enregistrer une émission télé (en l’occurrence « La grande librairie » de TV5) sur une clé USB à partir de mon ordinateur fixe (Ubuntu 12.04) et de ma connexion Ethernet à la maison et la visionner sur mon ordinateur portable sans connexion internet et avec Window7.

Que me conseillez-vous ?

Hors ligne

#2 Le 11/08/2013, à 18:09

Yves-Antoine

Re : Enregistrer une émission télé sur une clé USB

Bonjour Gatzy,

Pourquoi ne pas programmer l'enregistrement de l'émission sur ta box, et ensuite accéder à son disque à distance pour transférer le fichier sur ton portable ?
Cette solution fonctionne avec Free. Inconvénient, on est limité par le débit ascendant de la box en ADSL (100 kO/sec).

Hors ligne

#3 Le 12/08/2013, à 09:49

gatzy

Re : Enregistrer une émission télé sur une clé USB

Bonjour
Merci Yves-Antoine pour ta réponse mais je suis chez SFR et la box TV que j'ai n'a pas de disque dur, en plus, elle n'est pas branchée (ma télé est tombée en panne il y a 3 mois) donc elle ne me sert plus ...

J'ai lu qu'il existait des clés USB TNT qui me permettrait d'enregistrer : est-ce que vous avez déjà utilisé ? est-ce compatible Ubuntu ? quel modèle choisir ?

Merci pour vos réponses
Odile

Dernière modification par gatzy (Le 12/08/2013, à 09:50)

Hors ligne

#4 Le 12/08/2013, à 22:01

k3c

Re : Enregistrer une émission télé sur une clé USB

Ave

Supposons que tu veuille enregistrer
http://www.tv5mondeplus.com/video/20-03 … ain-439216

Tu notes les derniers chiffres
tu vas donc ouvrir
http://www.tv5mondeplus.com/video-xml/get/439216
qui contient entre autres

<videoUrl>http://www.tv5mondeplus.com/video-smil/get/439216.smil

tu vas donc ouvrir

http://www.tv5mondeplus.com/video-smil/get/439216.smil

qui contient entre autres

<video src="tv5mondeplus/hq/3846477.mp4" system-bitrate="500000"/><video src="tv5mondeplus/bq/3846477.mp4" system-bitrate="300000"/>

tu prends la vidéo de meilleure qualité, celle avec le bitrate le plus élevé (hq -> haute qualité,, bq -> basse qualité)

et tu tapes une commande du type

msdc -c --no-proxy http://vodhdflash.tv5monde.com/tv5mondeplus/hq/3846477.mp4 -o mavideo.mp4

Je dois avoir un script qui automatise tout cela


Debian 12 sur Thinkpad reconditionné

Hors ligne

#5 Le 12/08/2013, à 22:23

k3c

Re : Enregistrer une émission télé sur une clé USB

Un exemple

$ python tv5_0_1.py http://www.tv5mondeplus.com/video/20-03-2013/pia-petersen-ecrivaine-danoise-439217
look for the contentID
    ContentID : http://www.tv5mondeplus.com/video-xml/get/439217
look for the smilUrl
    smilUrl : http://www.tv5mondeplus.com/video-smil/get/439217.smil
look for the videoUrl
    videoUrl : http://vodhdflash.tv5monde.com/tv5mondeplus/hq/3846476.mp4
titre pia-petersen-ecrivaine-danoise-439217.mp4
['/usr/bin/msdl', '-c', '--no-proxy', 'http://vodhdflash.tv5monde.com/tv5mondeplus/hq/3846476.mp4', '-o', 'pia-petersen-ecrivaine-danoise-439217.mp4']
No such file or directory
$ 

Et on a donc

$ ls -alrt pia-petersen-ecrivaine-danoise-439217.mp4 
-rw-rw-r-- 1 gg gg 22843509 août  12 22:13 pia-petersen-ecrivaine-danoise-439217.mp4
$ 

Le code

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# TV5MondePlus version 0.1 par JUL1EN094 pour mon poto k3c

import urllib, urllib2, sys, re
import xml.etree.ElementTree
import subprocess

class TV5MondePlus(object):
    def __init__(self, url):
        self.url           = url
        self.contentID     = self.get_contentID()
        self.smilUrl       = self.get_smilUrl()
        self.videoUrl      = self.get_videoUrl()
    
    def get_contentID(self):
        try :
            print 'look for the contentID'
            soup = self.getFile(self.url)
            html = soup.decode('utf-8')
            contentID = re.findall("""contentID:'(.*)'""",html)[0]
            print '    ContentID : ' + contentID
            return contentID
        except Exception, e:
            print 'error : not possible to get the contentID'
            print e
            return False
        
    
    def get_httpEnd(self,smilFile) :
        #get best bitrate 
        video_src_s = re.findall("""<video src="(.*)" system-bitrate="(.*)"/>""", smilFile)
        bestBitrate = 0
        httpEnd     = False
        for video_src in video_src_s :
            bitrate = video_src[1]
            if bitrate > bestBitrate :
                bestBitrate = bitrate
                httpEnd     = video_src[0]
        return httpEnd
              
    
    def get_smilUrl(self) :
        try :
            print 'look for the smilUrl'
            root     =  xml.etree.ElementTree.fromstring(self.getFile(self.contentID))
            video    = root.find('video')
            info     = video.find('info')
            videoUrl = info.find('videoUrl')
            smilUrl  = videoUrl.text
            print '    smilUrl : '+smilUrl
            return smilUrl
        except Exception, e:
            print 'error : not possible to get the smilURL'
            print e
            return False
    
    def get_videoUrl(self) :
        try :
            global videoUrl
            print 'look for the videoUrl'
            smilFile = self.getFile(self.smilUrl)
            httpBase = re.findall("""<meta name="httpBase" content="(.*)" />""", smilFile)[0]
            httpEnd  = self.get_httpEnd(smilFile)
            videoUrl = httpBase+httpEnd
            print '    videoUrl : '+videoUrl
            return videoUrl
        except Exception, e:
            print 'error : not possible to get the videoUrl'
            print e
            return False        
    
    def getFile(self, url):
        request = urllib2.Request(url)
        request.add_header('User-Agent', 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0')
        response = urllib2.urlopen(request,timeout = 10)
        return response.read()

def main():
    x = TV5MondePlus(sys.argv[1]) 

if __name__ == "__main__":
    main()
    tit = sys.argv[1].split('/')[-1]+'.mp4'
    print 'titre',tit
    args = ["/usr/bin/msdl","-c","--no-proxy", videoUrl , "-o", tit]
    print args
    app = subprocess.Popen(args=args, stdout=open('somefile', 'w'))
    app.wait()

Debian 12 sur Thinkpad reconditionné

Hors ligne

#6 Le 12/08/2013, à 22:53

k3c

Re : Enregistrer une émission télé sur une clé USB

Au fait, tu peux utiliser msdl, curl ou wget pour récupérer le fichier voulu, si tu n'as pas tout installé.


Debian 12 sur Thinkpad reconditionné

Hors ligne

#7 Le 13/08/2013, à 09:50

gatzy

Re : Enregistrer une émission télé sur une clé USB

Merci k3c pour tes réponses mais c'est trop compliqué pour moi, je ne lis pas le python dans le texte et du coup, je ne sais pas comment adapter tes commandes à l'émission que je recherche : désolée ...

Par contre, si quelqu'un utilise une clé USB TNT avec Ubuntu : je suis intéressée par son avis.

Hors ligne

#8 Le 13/08/2013, à 09:59

J5012

Re : Enregistrer une émission télé sur une clé USB

y a une doc qui en parle : http://doc.ubuntu-fr.org/tnt
voir aussi le forum

Hors ligne

#9 Le 13/08/2013, à 10:58

k3c

Re : Enregistrer une émission télé sur une clé USB

@ gatzy

Tu n'as rien à adapter.
Tu enregistre le code python (avec kate ou geany ou vim ou emacs ou...) dans un fichier que tu nommes par exemple tv5.py

puis, quand tu veux récupérer la vidéo de l'émission
http://www.tv5mondeplus.com/video/11-05 … sse-264570
tu fais

gg@vientiane:~$ python tv5.py  http://www.tv5mondeplus.com/video/11-05-2012/la-librairie-suisse-264570
look for the contentID
    ContentID : http://www.tv5mondeplus.com/video-xml/get/264570
look for the smilUrl
    smilUrl : http://www.tv5mondeplus.com/video-smil/get/264570.smil
look for the videoUrl
    videoUrl : http://vodhdflash.tv5monde.com/tv5mondeplus/hq/3585207.mp4
titre la-librairie-suisse-264570.mp4
['/usr/bin/msdl', '-c', '--no-proxy', 'http://vodhdflash.tv5monde.com/tv5mondeplus/hq/3585207.mp4', '-o', 'la-librairie-suisse-264570.mp4']
No such file or directory
gg@vientiane:~$ ls -alrt la-librairie-s*
-rw-rw-r-- 1 gg gg 27843501 août  13 10:51 la-librairie-suisse-264570.mp4
gg@vientiane:~$ 

et tu as ton fichier, un coup vlc ou mplayer et tu lis ta vidéo.


Debian 12 sur Thinkpad reconditionné

Hors ligne