2017-01-26 2 views
1

J'ai ce fichier html, téléchargé à partir Projekktor:Accès au lien youtube valide est refusé après avoir été analysé avec Projekktor

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Projekktor Version 8 Test</title> 
<link rel="stylesheet" href="theme/style.css" type="text/css" media="screen" /> 

<script type="text/javascript" src="projekktor/jquery.min.js"></script> <!-- Load jquery --> 
<script type="text/javascript" src="projekktor/projekktor.min.js"></script> <!-- load projekktor --> 
</head> 
<body> 

<video id="player_a" class="projekktor" poster="intro.png" title="this is projekktor" width="640" height="360" controls> 

     <source src="" /> 

</video> 

<script type="text/javascript"> 
$(document).ready(function() { 
    projekktor('#player_a', { 
    volume: 0.8, 
    playerFlashMP4: 'http://www.localhost:8000/StrobeMediaPlayback.swf', 
    playerFlashMP3: 'http://www.localhost:8000/StrobeMediaPlayback.swf' 
    }); 
}); 
</script> 


</body> 
</html> 

Je suis téléchargerai les url pour une vidéo sur youtube par un appel API (je les informations d'identification), afin de remplacer src='' avec le résultat le code suivant forme

import lxml.html as LH 

link = youtube_call(id) 

def parse_html(link): 

    filename = 'projekktor.html' 
    f = LH.parse(filename) 

    for el in f.iter('video'): 
     el.attrib['src'] = link 
     # have also tried 
     # el.attrib['src'] = link.replace('amp;', '') 

    new_html = LH.tostring(f, pretty_print=True) 
    print (new_html) 

mais quand je l'imprime, un amp; méchant est ajouté à src=, et l'accès à la liaison est refusée. (Je me suis cassé le lien ici dans les nouvelles lignes pour des raisons de lisibilité)

https://r3---sn-oxunxg8pjvn-bpbs.googlevideo.com/videoplayback?expire=1485418386& 
amp;mv=m& 
amp;mt=1485396620& 
amp;ms=au& 
amp;clen=13475559& 
amp;mn=sn-oxunxg8pjvn-bpbs& 
amp;mm=31& 
amp;ipbits=0& 
amp;requiressl=yes& 
amp;itag=18&amp;id=o-AG-dux-Jvtia_DsWZcyRfNpbMlzulsNn6I3SXyi0SI1B& 
amp;lmt=1458188966300704& 
amp;signature=BDC946187F74386CE00C5452CD703F9B13E4E30F.766549AB6A7C1811899CCC04742353B5BD0153D7&amp;dur=266.448&amp;key=yt6& 
amp;ip=177.142.138.140& 
amp;sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire& 
amp;ei=MluJWO_aEIr_-AXHx6GwDA& 
amp;mime=video%2Fmp4& 
amp;upn=aFGwEwwIS1o&amp;pl=20&amp;source=youtube& 
amp;ratebypass=yes&amp;initcwndbps=1178750& 
amp;gir=yes 

Retirez tous amp; et le lien est valide, mais j'ai essayé link.replace('amp;', '') ne fonctionne pas.

Y at-il une solution de contournement?

Répondre

-1

Cette URL de la vidéo avec les références de caractères dans &amp; il fonctionne très bien alors qu'en réalité, utilisé à l'URL dans un attribut src pour un élément video ou élément source. Essayez:

<video id="player_a" class="projekktor" poster="intro.png" title="this is projekktor" width="640" height="360" controls> 
 
<source src="https://r3---sn-oxunxg8pjvn-bpbs.googlevideo.com/videoplayback?expire=1485418386&amp;mv=m&amp;mt=1485396620&amp;ms=au&amp;clen=13475559&amp;mn=sn-oxunxg8pjvn-bpbs&amp;mm=31&amp;ipbits=0&amp;requiressl=yes&amp;itag=18&amp;id=o-AG-dux-Jvtia_DsWZcyRfNpbMlzulsNn6I3SXyi0SI1B&amp;lmt=1458188966300704&amp;signature=BDC946187F74386CE00C5452CD703F9B13E4E30F.766549AB6A7C1811899CCC04742353B5BD0153D7&amp;dur=266.448&amp;key=yt6&amp;ip=177.142.138.140&amp;sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&amp;ei=MluJWO_aEIr_-AXHx6GwDA&amp;mime=video%2Fmp4&amp;upn=aFGwEwwIS1o&amp;pl=20&amp;source=youtube&amp;ratebypass=yes&amp;initcwndbps=1178750&amp;gir=yes"> 
 
</video>

Ça ne fonctionnera pas si vous entrez dans la barre d'adresse du navigateur avec les &amp; références de caractères, ou si vous essayez sinon de naviguer directement à cette URL. Dans ce cas, il vous donne 403, mais c'est prévu.

+0

Cela n'a pas fonctionné comme vous l'avez dit ni + il fonctionne réellement comme prévu lorsqu'il est entré dans une URL de navigateur et télécharger le fichier – user10089632