Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#26 Le 25/05/2008, à 10: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, à 12: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, à 12: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, à 12:26)

Hors ligne

#29 Le 25/05/2008, à 14:03

fluzz

Re : web tv orange

UgM a écrit :

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 26/05/2008, à 00:18

yostral

Re : web tv orange

Yes, en reprenant le code de UgM ça fonctionne smile.


Quand tout le reste a échoué, lisez le mode d'emploi.

Hors ligne

#31 Le 26/05/2008, à 08:08

titi89

Re : web tv orange

oui cela fonctionne super
lol:lol::lol::lol:
@+

Hors ligne

#32 Le 26/05/2008, à 22: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, à 23: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, à 15:36

fluzz

Re : web tv orange

UgM a écrit :

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, à 18: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, à 18:46)


dreadlocks@jabber.fr

Hors ligne

#36 Le 27/05/2008, à 21:40

fluzz

Re : web tv orange

dreadlocks a écrit :

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, à 22:06

Maxouille

Re : web tv orange

un petit tuto dans truc et astuce peut-être ?

Hors ligne

#38 Le 27/05/2008, à 23: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 28/05/2008, à 00:10

kikislater

Re : web tv orange

Moi ça m'intéresse bien sûr !

Hors ligne

#40 Le 28/05/2008, à 03:24

UgM

Re : web tv orange

Bonjour,

@fluzz
J'espère que ton script est sous licence GPL smile

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 tongue
logo.png

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 lol

Hors ligne

#41 Le 28/05/2008, à 07:50

utodeb

Re : web tv orange

Bonjour,
Merci à vous deux pour ce script big_smile
Entre ce script et celui de Ras' je vais pouvoir jeter ma télé (de toutes façon la réception était pourris lol)

++


Smile today tomorrow will be worse
Simple comme Ubuntu n°2 10.04 LTS

Hors ligne

#42 Le 28/05/2008, à 09:54

dreadlocks

Re : web tv orange

Ca marche  nickel merçii à vous.


dreadlocks@jabber.fr

Hors ligne

#43 Le 28/05/2008, à 10: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, à 10:44

fluzz

Re : web tv orange

UgM a écrit :

@fluzz
J'espère que ton script est sous licence GPL smile

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, à 10: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, à 13:22

titi89

Re : web tv orange

ok merci

Hors ligne

#47 Le 28/05/2008, à 15: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 !!! big_smile:D:D:D

Hors ligne

#48 Le 31/05/2008, à 15: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 10.04 Gnome - 64 bits - Athlon Chipset Nvidia - CG Nvidia

Hors ligne

#49 Le 31/05/2008, à 16: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, à 16:50

freechelmi

Re : web tv orange

Maxouille a écrit :

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