#26 Le 25/05/2008, à 09:59
- fluzz
Re : web tv orange
Ouaips, j'ai pas du tout bien expliquer... Il faut donner en parametre au script le numero du canal que tu veux regarder.
Exemple : si tu as mis le script dans un fichier appelle 'webtv', alors pour regarder France 2, tu lances './webtv 2'
(si tu as mis les droits en execution, bien sur, sinon tu lances 'sh webtv 2'). Pour France 3: 'webtv 3'. Etc....
Hors ligne
#27 Le 25/05/2008, à 11:21
- UgM
Re : web tv orange
Bonjour,
En faisant un copier coller tout bete, j'ai remarque que les liens ne sont pas exact (avec 3 points). Tu aurais dû mettre les codes entre la balise code.
Mais bon, après correction, cela ne marche toujours pas.
J'ai fais à la main :
1)
$ rm cookie.txt
2)
$ wget -q --header="Content-Type: text/plain" --save-cookies=cookies.txt --keep-session-cookies --post-file=post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O-
throw 'allowScriptTagRemoting is false.';
//#DWR-REPLY
if (window.dwr) dwr.engine._remoteHandleBatchException({ name:'org.directwebremoting.extend.ServerException', message:'The specified call count is not a number: null' });
else if (window.parent.dwr) window.parent.dwr.engine._remoteHandleBatchException({ name:'org.directwebremoting.extend.ServerException', message:'The specified call count is not a number: null' });
3) Je modifie httpSessionId
4)
$ wget -q --header="Content-Type: text/plain" --load-cookies=cookies.txt --post-file=post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O -
throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
dwr.engine._remoteHandleException('2','0',{javaClassName:"java.lang.Throwable",message:"Error"});
Voilà.
Hors ligne
#28 Le 25/05/2008, à 11:25
- UgM
Re : web tv orange
En fait, ça marche! Mais il faut modifier les liens après avoir faire les copier/coller.
Je redonne le code propre ici :
#!/bin/sh
# $1 : channel
[ -f cookies.txt ] && rm -f cookies.txt
wget -q --header="Content-Type: text/plain" \
--save-cookies=cookies.txt --keep-session-cookies \
--post-file=post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O /dev/null
session=`grep '^webtv.guidetv.orange.fr' cookies.txt | awk '{ print $7; }'`
sed -i -e "s/^httpSessionId=.*$/httpSessionId=${session}/" post.txt
sed -i -e "s/^c0-param0=.*$/c0-param0=number:${1}/" post.txt
url=`wget -q --header="Content-Type: text/plain" \
--load-cookies=cookies.txt \
--post-file=post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O - | grep -o 'mms:.*KEY'`
vlc $url
Merci.
@+
Dernière modification par UgM (Le 25/05/2008, à 11:26)
Hors ligne
#29 Le 25/05/2008, à 13:03
- fluzz
Re : web tv orange
Tu aurais dû mettre les codes entre la balise code.
Yep, t'as raison. Desole...
Titi89, en faisant le copier-coller du code re-poste par UgM, ca fonctionne pour toi ?
Hors ligne
#30 Le 25/05/2008, à 23:18
- yostral
Re : web tv orange
Yes, en reprenant le code de UgM ça fonctionne .
Quand tout le reste a échoué, lisez le mode d'emploi.
Hors ligne
#31 Le 26/05/2008, à 07:08
- titi89
Re : web tv orange
oui cela fonctionne super
:lol::lol::lol:
@+
Hors ligne
#32 Le 26/05/2008, à 21:00
- Tbenoist
Re : web tv orange
J'ai testé le script proposé et j'ai cette erreur :
sed: impossible de lire post.txt: Aucun fichier ou dossier de ce type
alors que j'ai bien fait un appel du type sh webtv x . le résultat de wget donne :
throw 'allowScriptTagRemoting is false.';
//#DWR-REPLY
if (window.dwr) dwr.engine._remoteHandleBatchException({ name:'org.directwebremoting.extend.ServerException', message:'The specified call count is not a number: null' });
else if (window.parent.dwr) window.parent.dwr.engine._remoteHandleBatchException({ name:'org.directwebremoting.extend.ServerException', message:'The specified call count is not a number: null' });
Il doit donc y avoir un problème dans la requette http mais je ne vois pas le quel
#33 Le 26/05/2008, à 22:48
- UgM
Re : web tv orange
En fait, il faut créer un fichier post.txt dans le même dossier que le script :
post.txt
callCount=1
page=/home.do?null
httpSessionId=7C67F07F3E23B6DE2F4A1F03F6656107.otv-as02a
scriptSessionId=E8E85FE0163BDD9E08C218C0CD35148F855
c0-scriptName=ChannelService
c0-methodName=getChannelUrlToPlayLowQuality
c0-id=0
c0-param0=number:10
batchId=2
Hors ligne
#34 Le 27/05/2008, à 14:36
- fluzz
Re : web tv orange
En fait, il faut créer un fichier post.txt dans le même dossier que le script :
Exact. bon j'explique un peu ce que fait le script...
Un dialogue "AJAX" est utilise entre le client Web et le serveur WebTV.
Pour cela une requete POST est envoyee au serveur. Le fichier post.txt contient le corps de cette requete. En reponse, le serveur envoie l'URL mms.
MAIS ce dialogue est contenu au sein d'une session HTTP, et si on n'envoie pas le bon cookie de session lors de la requete POST, le serveur envoie une redirection HTTP. Cette redirection permet d'etablir la session, et donc de recuperer le cookie qui va bien.
C'est exactement ce que fait la premiere requete (qui est identique a la deuxieme), avec recuperation et stockage du cookie. Il est donc "normal" que cette requete genere une erreur. Enfin plutot, il faudrait en toute logique faire les bons appels pour etablir une reelle session. Ici, on courcircuite tout ca de maniere pas tres propre en profitant du fait que le serveur nous envoie gentillement la redirection qui va bien. Tout ce qui importe avec cette premiere requete, c'est de recuperer le cookie !
Le script re-emet donc ensuite la meme requete, mais cette fois avec le cookie qui vient d'etre recupere.
Il faut egalement que la "cle de session" soit envoyee dans le corps de la requete POST. C'est ce qui est fait entre les 2 wget, a l'aide d'une commande 'sed', qui met a jour le fichier post.txt avec le contenu du cookie recupere.
(nb: je ne sais pas a quoi correspondent les autres parametres, mis a part c0-param0 qui contient le numero de canal demande).
Voila.
J'espere que ca vous aidera en cas de probleme.
Hors ligne
#35 Le 27/05/2008, à 17:04
- dreadlocks
Re : web tv orange
avec cette méthode il me faut obligatoirement firefox 2 ?
Dernière modification par dreadlocks (Le 27/05/2008, à 17:46)
dreadlocks@jabber.fr
Hors ligne
#36 Le 27/05/2008, à 20:40
- fluzz
Re : web tv orange
avec cette méthode il me faut obligatoirement firefox 2 ?
Euh ben non. Le but c'est justement de pas avoir besoin d'utiliser un navigateur...
Hors ligne
#37 Le 27/05/2008, à 21:06
- Maxouille
Re : web tv orange
un petit tuto dans truc et astuce peut-être ?
Hors ligne
#38 Le 27/05/2008, à 22:31
- UgM
Re : web tv orange
Bonsoir,
J'ai ajouté quelques lignes en Zenity pour avoir une interface graphique avec la liste des chaines. Si ça interesse quelqu'un, je le poserai ici demain (car je suis pas chez moi. Ce n'est pas super top mais ça marche.
@+
Hors ligne
#39 Le 27/05/2008, à 23:10
- kikislater
Re : web tv orange
Moi ça m'intéresse bien sûr !
Hors ligne
#40 Le 28/05/2008, à 02:24
- UgM
Re : web tv orange
Bonjour,
@fluzz
J'espère que ton script est sous licence GPL
Voilà le script avec une interface graphique.
D'abord, créez un dossier .wto dans votre home :
mkdir ~/.wto
Créez le fichier post.txt dans le dossier ~/.wto et copier/coller ceci :
callCount=1
page=/home.do?null
httpSessionId=7C67F07F3E23B6DE2F4A1F03F6656107.otv-as02a
scriptSessionId=E8E85FE0163BDD9E08C218C0CD35148F855
c0-scriptName=ChannelService
c0-methodName=getChannelUrlToPlayLowQuality
c0-id=0
c0-param0=number:10
batchId=2
Créez le fichier channel dans le dossier ~/.wto et copier/coller ceci :
0
Quitter
1
24/24 Vidéo
2
France 2
3
France 3
4
Orange Sport
5
France 5
6
BBC World
7
Poker channel
8
Direct 8
9
France 24
10
Demain
11
Liberty Tv
12
Fashion Tv
13
LCP Public
14
France 4
15
BFM Tv
16
iTELE
17
Trace
18
TV8 Mont-Blanc
19
Art Channel
20
France ô
Enfin, créez le fichier wto.sh (nommez comme vous voulez) là où vous voulez (perso, je le mis dans le dossier ~/.wto) et copier/coller ceci :
#!/bin/sh
#
# wto version 0.1
#
# Ce script permet de regarder le WebTv Orange directement à partir de vlc sans navigateur (Firefox)
#
# Ce script est libre, vous pouvez le redistribuer et/ou le modifier selon
# les termes de la Licence Publique Générale GNU publiée par
# la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous).
#
# Ce script a été écrit par fluzz (distribué sur le forum de Ubuntu-Fr)
# Modifié par Tuxgasy (alias UgM) <tuxgasy@tuxfamily.org> pour l'ajout d'interface graphique en zenity
#
wto() {
channel=`cat $HOME/.wto/channel | \
zenity --list \
--title "Choisir une chaine" \
--column "n°" --column "Chaines"`
# code retour de zenity --list
# 0 si le bouton validez appuyé.
retour=$?
# Quitter si chaine 0 choisir
if [ $channel -eq 0 ]; then
exit 0
fi
# Lancer la chaine sélectionnée
if [ $retour -eq 0 ]; then
if [ "$channel" = "" ];then
zenity --error --text="Veuillez sélectionner une chaine"
return 1
fi
[ -f $HOME/.wto/cookies.txt ] && rm -f $HOME/.wto/cookies.txt
wget -q --header="Content-Type: text/plain" \
--save-cookies=$HOME/.wto/cookies.txt --keep-session-cookies \
--post-file=$HOME/.wto/post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O /dev/null
session=`grep '^webtv.guidetv.orange.fr' $HOME/.wto/cookies.txt | awk '{ print $7; }'`
sed -i -e "s/^httpSessionId=.*$/httpSessionId=${session}/" $HOME/.wto/post.txt
sed -i -e "s/^c0-param0=.*$/c0-param0=number:${channel}/" $HOME/.wto/post.txt
url=`wget -q --header="Content-Type: text/plain" \
--load-cookies=$HOME/.wto/cookies.txt \
--post-file=$HOME/.wto/post.txt http://webtv.guidetv.orange.fr/dwr/call/plaincall/ChannelService.getChannelUrlToPlayLowQuality.dwr -O - | \
grep -o 'mms:.*KEY'`
vlc $url &
elif [ $retour -eq -1 ]; then
zenity -error --text="Une erreur inattendue s'est produite."
fi
}
# boucle infinie
while true; do
zenity --notification --window-icon="$HOME/.wto/logo.png" --text "Web Tv Orange"
wto
done
Rendez le fichier exécutable :
chmod +x wto.sh
Vous pouvez créer un icône (nommé logo.png) que vous mettez dans le dossier ~/.wto
Mon logo est le suivant au cas où vous est nul comme moi en dessin
En lancer le script en commande ./wto.sh ou en double cliquant sur le fichier, un nouveau icon s'affiche dans le tableau de bord à coté de l'heure. Il suffit de cliquer sur l'icône pour sélectionner une chaine que vous voulez regarder.
Perso, j'ai ajouté le script dans la liste des programmes qui se lancent à l'ouverture de ma session (Système->Préférences->Sessions)
Allé, bonne nuit
Hors ligne
#41 Le 28/05/2008, à 06:50
- utodeb
Re : web tv orange
Bonjour,
Merci à vous deux pour ce script
Entre ce script et celui de Ras' je vais pouvoir jeter ma télé (de toutes façon la réception était pourris )
++
Smile today tomorrow will be worse
Simple comme Ubuntu n°2 10.04 LTS
Hors ligne
#42 Le 28/05/2008, à 08:54
- dreadlocks
Re : web tv orange
Ca marche nickel merçii à vous.
dreadlocks@jabber.fr
Hors ligne
#43 Le 28/05/2008, à 09:09
- titi89
Re : web tv orange
merci à tous
c'est pour cela qu'on aime Ubuntu
lorsque l'on click sur l'icone il disparait est-ce normal?
ou est-ce un problême chez moi?
@+
Hors ligne
#44 Le 28/05/2008, à 09:44
- fluzz
Re : web tv orange
@fluzz
J'espère que ton script est sous licence GPL
Nan, il est sous license "t'en fais ce que t'en veux" :-)
Bon si vous commencez a en faire un truc vraiment utilisable (merci UgM pour la zenitisation !), faudra songer a etre un peu plus sympa avec le serveur WebTV. Je vais tracer d'un peu plus pres le dialogue avec le serveur, et voir ce qu'on peut faire.
Hors ligne
#45 Le 28/05/2008, à 09:45
- UgM
Re : web tv orange
Lorsque tu cliques sur l'icône ca disparait et c'est normale mais en même temps tu as une nouvelle fenetre qui s'affiche avec la liste des chaines.
Hors ligne
#46 Le 28/05/2008, à 12:22
- titi89
Re : web tv orange
ok merci
Hors ligne
#47 Le 28/05/2008, à 14:42
- general alcazar
Re : web tv orange
Gloire aux créateurs de ce script !!!!
je l'ai collé dans ma liste de prog au démarrage de session.
Je l'utilise avec mplayer (sans gui) en lieu et place de vlc.
Merci beaucoup !!! :D:D:D
Hors ligne
#48 Le 31/05/2008, à 14:49
- ace66130
Re : web tv orange
Perso tout marche sauf que dans le cadre qui s'affiche, pas de liste des TV, et si je cliques quand meme dessus, ca lance bien VLC ....
Ubuntu 23.10.1 Gnome - 64 bits - HP Prodesk
Hors ligne
#49 Le 31/05/2008, à 15:38
- titi89
Re : web tv orange
n'as tu pas oublié de créer le fichier "channel" comme cité plus haut?
Hors ligne
#50 Le 31/05/2008, à 15:50
- freechelmi
Re : web tv orange
je comprends pas trop bien comment ça marche.
Si on peut avoir les liens et les ouvrirs avec vlc, ça veut dire que toutes personnes meme non abonnées a orange, peuvent regarder les chaines si elles ont les liens ?
Pas forcément , ça peut être comme chez free et neuf ou ils n'autorise que les Ips qui proviennent de leurs réseaux respectifs.
Hors ligne