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.

#51 Le 17/05/2015, à 11:24

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Autre bug de get_iplayer, il ne télécharge pas les vidéos ne comprenant que des chiffres dans le titre, par exemple la série 1864
http://www.bbc.co.uk/iplayer/episode/b0 … -episode-1

youtube-dl n'a pas ce problème


Archlinux sur Xiaomi Air 13

Hors ligne

#52 Le 19/05/2015, à 14:07

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Jái mis une nouvelle version de BBCrecord et BBCproxy  sur gitlab,
les noms sont:
BBCrecordv1.py et BBCproxyv1.py
Je ne pense pas que ca sera une solution pour les problemes signales par k3c masi il y a quand meme quelques modifications.importantes.

Dernière modification par BobW (Le 19/05/2015, à 14:08)

Hors ligne

#53 Le 19/05/2015, à 14:38

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

@k3c
je viens de telecharger les 2 episode 1864 avec BBCrecordv1
SEARCH sans arguments resultant la liste complete
les 2 premieres lignes sont les 2 episodes 1864


Philby n-est plus lá
certains programmes ne restent que 7 jours dans la catalogue de iplayer...

Hors ligne

#54 Le 19/05/2015, à 14:59

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

J'ai téléchargé Philby si ça t'intéresse :-)

Je vais tester ta dernière version, merci


Archlinux sur Xiaomi Air 13

Hors ligne

#55 Le 19/05/2015, à 15:17

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

tu les installes où tes scripts ? Tu dis python directory, mais plus précisément ?


Archlinux sur Xiaomi Air 13

Hors ligne

#56 Le 20/05/2015, à 18:07

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

@k3c
si je n'ai pas fait des erreurs on peut trouver les 2 scripts sur le site de Gitlab sous BobW
mais peut etre je dois encore faciliter la possible recherche, mais je ne sais pas encore comment je dois
faire cela,
Bonne Chance!

Hors ligne

#57 Le 20/05/2015, à 19:14

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

oui je les ai trouvés, mais tu les copies où ?
dans ~, dans /usr/bin/python3/xxx, autrepart  ?


Archlinux sur Xiaomi Air 13

Hors ligne

#58 Le 20/05/2015, à 20:42

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

chaque installation peut etre different
je dirais lá ou il ya les autres scripts de python 3 et lá ou etaient les anciennes versions (noms sans v1)
sur mon PC les 2 scripts se trouvent dans /home/bob/Desktop
je suis déja content que tu  les a trouvés

Dernière modification par BobW (Le 20/05/2015, à 20:45)

Hors ligne

#59 Le 02/06/2015, à 22:20

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

La BBC a changé des choses, donc pour que ça récupère la liste des vidéos, là où on faisait avant, pour trouver une vidéo contenant
remain
dans le titre

get_iplayer remain

il faut maintenant faire

get_iplayer --refresh-feeds-tv=schedule remain

source https://github.com/get-iplayer/get_iplayer/issues/159

Dernière modification par k3c (Le 03/06/2015, à 04:47)


Archlinux sur Xiaomi Air 13

Hors ligne

#60 Le 04/06/2015, à 11:25

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Plus important encore: il y a des nouvelles versions de get_iplayer. Les anciennes versions ne fonctionnent plus
depuis le 3 juin a cause des modifications de la part du BBC. J'a i testé les versions 2.93 por Linux et 2.94 pour
Windows avec BBCrecordv1.py et tout marche..

Hors ligne

#61 Le 20/10/2015, à 08:48

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Bon mon script ne fonctionne plus car le site de proxys que j'utilise a changé, et donc je ne renvoie plus un seul proxy.

Je crois que je vais juste enregistrer la BBC live avec le script wilmaa que j'ai posté, à moins que je ne retrouve le courage et le temps de recommencer le parsing du site de proxys...


Archlinux sur Xiaomi Air 13

Hors ligne

#62 Le 01/11/2015, à 21:12

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Un fix pour la bbc, mon bbc33.py
j'utilise un autre site de proxys

/usr/bin/env python                                                                                                                                                   
# -*- coding:utf-8 -*-                                                                                                                                                  
# bbc_proxy version 0.3 par k3c, sortie quand deja telecharge                                                                                                                                         
# passage de proxy en 2 ème parametre                                                                                                                                   
import subprocess, sys, shlex
import random
import urllib2
import requests
import bs4 as BeautifulSoup
import socket
from threading   import Thread

ON_POSIX = 'posix' in sys.builtin_module_names
Finished = False

listeUserAgents = [ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; fr-fr) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1',
                                                'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1',
                                                'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13\
',
                                                'Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori',
                                                'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1',
                                                'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312',
                                                'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11',
                                                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8' ]
allTimeouts = (3, 10, 15, 20)

class FlushFile(object):
    """Write-only flushing wrapper for file-type objects."""
    def __init__(self, f):
        self.f = f
    def write(self, x):
        self.f.write(x)
        self.f.flush()

def start_thread(func, *args):
    t = Thread(target=func, args=args)
    t.daemon = True
    t.start()
    return t

def consume(infile):
    global Finished
    for line in iter(infile.readline, ''):
        if 'Finished writing to temp file.' in line:
            Finished = True
        if 'Already in history' in line:
            Finished = True
        print line,

    infile.close()

def getProxy():
    import re
    import requests
    import bs4 as BeautifulSoup
    html = requests.get('http://www.gatherproxy.com/proxylist/country/?c=United%20Kingdom')
    soup = BeautifulSoup.BeautifulSoup(html.text)
    mastr = soup.find_all('script')
    lst = []
    for x in mastr:
        slst = []
        if "gp.insertPrx" in x.text:
            m = re.search('"PROXY_IP":"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',x.text)
            if m:
                slst.append(m.group(1))
            mport = re.search('"PROXY_PORT":"(\w*[0-9]*)',x.text)
            if mport:
                slst.append(int(mport.group(1),16))
            mportype = re.search('"PROXY_TYPE":"(\w*)',x.text)
            if mportype:
                slst.append(mportype.group(1))
                lst.append(slst)
    for href in lst:
        yield href
def getValidProxy():
    for timeout in allTimeouts:
        print 'Timeout =', timeout
        socket.setdefaulttimeout(timeout)
        for host, port, typeproxy in getProxy():
            try:
                print 'Trying %s:%s' % (host, port)
                print host, type(host), port, type(port)
                params = (host, port)
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect(params)
                s.close()
                yield host, port, typeproxy
                #   except urllib2.URLError:
                #       pass
            except socket.timeout:
                pass
            except socket.error:
                pass

def main():
    global Finished
    # Replace stdout with an automatically flushing version
    sys.stdout = FlushFile(sys.__stdout__)
    sys.stderr = FlushFile(sys.__stderr__)
    idvideo = sys.argv[1]
    for host, port, typeproxy in getValidProxy():
        print host, port, typeproxy
        if len(sys.argv) > 1 and sys.argv[2] == '1':

            cmds = "get_iplayer --get "+idvideo + " --nopurge --modes=best --subtitles --force -p 'http://"+host+":"+str(port)+"'"
        else:
            cmds = "get_iplayer --get "+idvideo + " --nopurge --modes=best --subtitles -p 'http://"+host+":"+str(port)+"'"
        print cmds
        arguments = shlex.split(cmds)
        Finished = False
        process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        pid = process.pid
        thread1 = start_thread(consume, process.stdout)
        thread2 = start_thread(consume, process.stderr)
        thread1.join() # wait for IO completion
        thread2.join() # wait for IO completion
        retcode = process.wait()
        print retcode
        if Finished:
            break

if __name__ == "__main__":
    main()

Dernière modification par k3c (Le 01/11/2015, à 21:47)


Archlinux sur Xiaomi Air 13

Hors ligne

#63 Le 03/11/2015, à 17:44

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

petites modifs, et essai des proxys de catégorie elite en premier

#!/usr/bin/env python                                                           
# -*- coding:utf-8 -*-                      
# bbc_proxy version 0.3 par k3c, sortie quand deja telecharge                   
# passage de proxy en 2 ème parametre     
# essai des proxys de catégorie elite en premier
import subprocess, sys, shlex
import random
import urllib2
import requests
import bs4 as BeautifulSoup
import re
import socket
from threading   import Thread

ON_POSIX = 'posix' in sys.builtin_module_names
Finished = False

listeUserAgents = [ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; fr-fr) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1',
                                                'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1',
                                                'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13\
',
                                                'Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori',
                                                'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1',
                                                'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312',
                                                'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11',
                                                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8' ]
allTimeouts = (3, 10, 15, 20)

class FlushFile(object):
    """Write-only flushing wrapper for file-type objects."""
    def __init__(self, f):
        self.f = f
    def write(self, x):
        self.f.write(x)
        self.f.flush()

def start_thread(func, *args):
    t = Thread(target=func, args=args)
    t.daemon = True
    t.start()
    return t

def consume(infile):
    global Finished
    for line in iter(infile.readline, ''):
        if 'Finished writing to temp file.' in line:
            Finished = True
        if 'Already in history' in line:
            Finished = True
        print line,

    infile.close()

def getProxyInfo(text):
    slst = []
    if "gp.insertPrx" in text:
        m = re.search('"PROXY_IP":"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',text)
        if m:
            slst.append(m.group(1))
            mport = re.search('"PROXY_PORT":"(\w*[0-9]*)', text)
            if mport:
                slst.append(int(mport.group(1),16))
                mportype = re.search('"PROXY_TYPE":"(\w*)', text)
                if mportype:
                    slst.append(mportype.group(1))
    return slst

def getProxy():
    html = requests.get('http://www.gatherproxy.com/proxylist/country/?c=United%20Kingdom')
    soup = BeautifulSoup.BeautifulSoup(html.text)
    mastr = soup.find_all('script')
    lst = []
    for x in mastr:
        slst = getProxyInfo(x.text)
        if len(slst) > 2 and slst[2] == u'Elite':
            print slst
            yield slst

    for x in mastr:
        slst = getProxyInfo(x.text)
        if len(slst) > 2 and slst[2] != u'Elite':
            print slst
            yield slst

def getValidProxy():
    for timeout in allTimeouts:
        print 'Timeout =', timeout
        socket.setdefaulttimeout(timeout)
        for host, port, typeproxy in getProxy():
            try:
                print 'Trying %s:%s' % (host, port)
                print host, type(host), port, type(port)
                params = (host, port)
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect(params)
                s.close()
                yield host, port, typeproxy
            except socket.timeout:
                pass
            except socket.error:
                pass

def main():
    global Finished
    sys.stdout = FlushFile(sys.__stdout__)
    sys.stderr = FlushFile(sys.__stderr__)
    idvideo = sys.argv[1]
    for host, port, typeproxy in getValidProxy():
        print host, port, typeproxy
        if len(sys.argv) > 1 and sys.argv[2] == '1':

            cmds = "get_iplayer --get "+idvideo + " --nopurge --modes=best --subtitles --force -p 'http://"+host+":"+str(port)+"'"
        else:
            cmds = "get_iplayer --get "+idvideo + " --nopurge --modes=best --subtitles -p 'http://"+host+":"+str(port)+"'"
        print cmds
        arguments = shlex.split(cmds)
        Finished = False
        process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        pid = process.pid
        thread1 = start_thread(consume, process.stdout)
        thread2 = start_thread(consume, process.stderr)
        thread1.join() # wait for IO completion
        thread2.join() # wait for IO completion
        retcode = process.wait()
        print retcode
        if Finished:
            break

if __name__ == "__main__":
    main()

Dernière modification par k3c (Le 03/11/2015, à 17:44)


Archlinux sur Xiaomi Air 13

Hors ligne

#64 Le 23/11/2015, à 22:20

BobW

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Mes versions BBrecordv2.py avec BCproxyv2,py fonctionnent encore toujours.
Et les principes utilises sont les memes que l'ancienne version de votre BBC33
Mais certainement je vais etudier vos modifications et eventuellement adapter une prochaine version
de BBCrecord et BBCProxy, mais pur l'instant je ne vois pas encore la necessité.

Hors ligne

#65 Le 29/12/2015, à 17:47

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Bon, comme le site gatherproxy.com a été en carafe 24 h, j'ai noté que je dois tester son accessibilité...
Je vais essayer d'utiliser plusieurs sites de proxys, ça serait mieux :-)


Archlinux sur Xiaomi Air 13

Hors ligne

#66 Le 04/08/2016, à 15:10

k3c

Re : [script Python] Récupérer les vidéos de la BBC avec get_iplayer

Bon la BBC sur Internet, c'est fini au 1 er septembre, ils faudra montrer qu'on a payé la redevance à la BBC...

https://www.theguardian.com/media/2016/ … r-loophole

Bien dommage


Archlinux sur Xiaomi Air 13

Hors ligne