Pages : 1
#1 Le 06/11/2011, à 18:10
- ADcomp
[python/webkit] Media Browser
Hello les gens ..
Juste un petit projet sur lequel je bosse pour le moment. Un simple 'media browser' codé en python avec webkit pour l'affichage.
menu :
PICTURES:
MUSIC:
VIDEO:
Un petit apercu en video : http://www.youtube.com/watch?v=LNvU8JqrIks
David [aka] ADcomp
Hors ligne
#2 Le 06/11/2011, à 18:38
- frafa
Re : [python/webkit] Media Browser
Salut
Je m"abonne !
un projet en relation que jaimarai bien voir évoluer, des fois que ca te branche ...
http://moobu.free.fr/fr/
http://forum.ubuntu-fr.org/viewtopic.php?id=120825
Hors ligne
#3 Le 06/11/2011, à 19:25
- ADcomp
Re : [python/webkit] Media Browser
salut frafa,
Sympa comme projet , mais codé en java. ( I hate java .. ).
Sinon , c'est possible de faire un coverflow en html/css ( le rendu est fait avec webkit ). exemples :
http://paulbakaus.com/lab/js/coverflow/
http://www.zorrito.com/code/coverflow/index.html
David [aka] ADcomp
Hors ligne
#4 Le 08/11/2011, à 16:08
- ADcomp
Re : [python/webkit] Media Browser
Pour la gestion audio/video, je voulais tester le module gstreamer. Mais si ca fonctionne bien en 'console', pas moyen de "lier" gstreamer avec gtk .. bizarre. Google ne m'a pas vraiment aider sur ce problème, dommage. Du coup, j'ai utilisé mplayer en mode 'slave' .. ( todo: modifier le code pour permettre différent backend : gstreamer, mplayer, vlc .. )
Ca fonctionne deja (voir video) , reste la partie audio (interface/gestion playlist). quelques réglages encore au niveau html/css à faire. Pour la gestion des images, il faut que je regarde du coté de jquery.
Video avec mplayer 'embarqué' : http://www.youtube.com/watch?v=4wtEs2fFbnk
David [aka] ADcomp
Hors ligne
#5 Le 08/11/2011, à 17:31
- AnsuzPeorth
Re : [python/webkit] Media Browser
Bjr,
Mais si ca fonctionne bien en 'console', pas moyen de "lier" gstreamer avec gtk .. bizarre.
Regarde les sources de GMediaFinder, la version 1 tourne avec gst. La version (2) embarque mplayer, gst et vlc (en cours, mais presque ok aux dernières nouvelles). Il y a une sorte d'API commun pour chaque lecteur...
Pour ma consommation personnelle, j'ai un lecteur qui utilise gst, playlist, progress et equalizer (indispensable amha), si ca t'intéresse, je te passe les sources.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#6 Le 08/11/2011, à 17:40
- AnsuzPeorth
Re : [python/webkit] Media Browser
Bjr,
ADcomp a écrit :Mais si ca fonctionne bien en 'console', pas moyen de "lier" gstreamer avec gtk .. bizarre.
Regarde les sources de GMediaFinder, la version 1 tourne avec gst. La version (2) embarque mplayer, gst et vlc (en cours, mais presque ok aux dernières nouvelles). Il y a une sorte d'API commun pour chaque lecteur...
Pour ma consommation personnelle, j'ai un lecteur qui utilise gst, playlist, progress et equalizer (indispensable amha), si ca t'intéresse, je te passe les sources.
EDIT: L'api gstreamer est galere, mais le plus performant de tous. L'api vlc est bizarre je trouve .. Pour mplayer, c'est toi qui doit faire l'api via le mode slave, donc ...
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#7 Le 11/11/2011, à 18:51
- ADcomp
Re : [python/webkit] Media Browser
Pour finir , j'ai tout basé sur mplayer pour la gestion audio/video .. J'ai utilisé le module mplayer de 'Pymp' comme base. Je suis assez content du resultat pour le moment. reste la gestion de playlist.
Nouvel video : http://www.youtube.com/watch?v=GJwCXVIXfWg
source - https://github.com/adcomp/webkit-media-browser
Pour ma consommation personnelle, j'ai un lecteur qui utilise gst, playlist, progress et equalizer (indispensable amha), si ca t'intéresse, je te passe les sources.
toujours intéressant
David [aka] ADcomp
Hors ligne
#8 Le 18/06/2012, à 16:12
- ADcomp
Re : [python/webkit] Media Browser
Hello,
Je viens de relire le code que j’avais ecrit pour la première version de mon ‘webkit media browser‘ .. OMG! que le code est pourri .. exemple :
comme d’habitude, parti sur une idée sympa, pas de structure, pas de commentaires ..
gestion de l’interface via Gtk : grosse erreur. Juste parce que je maitrisais mieux python que javascript.
Je n’avais plus touché à ce projet depuis plusieurs mois, il était temps de s’y remettre avec l’expérience acquise niveau javascript et surtout jQuery.
Voilà un mockup que je viens de faire pour l’interface.
J’en ai profité aussi pour mettre à jour la partie python en utilisant gobject-introspection, ainsi que l’ajout d’un Inspector pour Webkit (merci a Rick pour son exemple).
Video - test de l'interface au clavier + Inspector : http://www.youtube.com/watch?v=PyNYhzTSuHo
David [aka] ADcomp
Hors ligne
#10 Le 20/06/2012, à 10:26
- ADcomp
Re : [python/webkit] Media Browser
Salut PengouinPdt,
Voilà un exemple simple mais fonctionnel si tu as besoin : le script python gtk/webkit et la page html avec le javascript
#!/usr/bin/env python
import os
from gi.repository import WebKit as webkit
from gi.repository import Gtk as gtk
realpath = os.path.dirname(os.path.realpath( __file__ ))
os.chdir(realpath)
class Browser(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.connect('destroy', gtk.main_quit)
self.set_size_request(600, 400)
self._browser = webkit.WebView()
self._browser.connect("title-changed", self._title_changed_cb)
self._browser.open('%s/index.html' % realpath)
sw = gtk.ScrolledWindow(hadjustment = None, vadjustment = None)
sw.set_policy(gtk.PolicyType.NEVER, gtk.PolicyType.NEVER)
sw.set_shadow_type(gtk.ShadowType.NONE)
sw.add(self._browser)
self.add(sw)
self.show_all()
def _title_changed_cb(self, widget, frame, title):
print('message', title)
self.execute('echo("%s")' % title)
def execute(self, script):
self._browser.execute_script(script)
if __name__ == "__main__":
browser = Browser()
gtk.main()
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Desktop Webapp / WebKit</h1>
<script>
window.onload = function() { send('loaded') }
// send message to python
function send(message) {
var title = document.getElementsByTagName("title")[0]
title.innerHTML = message
}
function echo(message) {
document.write('<small>Message from python :</small><h1>' + message + '</h1>')
}
</script>
</body>
</html>
Dernière modification par ADcomp (Le 21/06/2012, à 10:17)
David [aka] ADcomp
Hors ligne
#12 Le 20/06/2012, à 15:38
- Mathieu147
Re : [python/webkit] Media Browser
En fait ADcomp tu utilises Python pour afficher un genre de navigateur sans interface, et tout le reste est en Javascript? Comment tu lies MPlayer à Javascript??
Pffff…
Hors ligne
#13 Le 20/06/2012, à 21:15
- ADcomp
Re : [python/webkit] Media Browser
@Mathieu147: un petit dessin vaut mieux qu'un mauvais discours
edit: comme d'habitude, merci à Gimp (crop) et Inkscape (mise-en-page)
Dernière modification par ADcomp (Le 20/06/2012, à 21:33)
David [aka] ADcomp
Hors ligne
#14 Le 21/06/2012, à 09:53
- ADcomp
Re : [python/webkit] Media Browser
Hello,
nouvelle vidéo de test pour la v2 en cours : http://www.youtube.com/watch?v=qf0WKopmUK8
nb: pas de son, oublié de coché l'option dans recordmydesktop
David [aka] ADcomp
Hors ligne
#15 Le 22/06/2012, à 07:38
- Mathieu147
Re : [python/webkit] Media Browser
@Mathieu147: un petit dessin vaut mieux qu'un mauvais discours
Quand tu mets «Python ⇌ Javascript» ça veut dire que, au sein même d'un Javascript que tu mets sur une page HTML rendue dans ton widget WebKit.WebView, tu peux appeler des fonctions Python?
Pffff…
Hors ligne
#16 Le 22/06/2012, à 10:46
- ADcomp
Re : [python/webkit] Media Browser
@Mathieu147: vu que javascript et python peuvent 'parler' ensemble ( voir l'exemple que j'ai donné plus haut pour @PengouinPdt ), tu peux dans l'abslolu demander tout ce que tu veux à python depuis javascript .. suffit de le coder.
David [aka] ADcomp
Hors ligne
#17 Le 22/06/2012, à 11:58
- AnsuzPeorth
Re : [python/webkit] Media Browser
bjr,
Ca m'enerve, tu fais toujours de trucs jolie toi ....
SInon, tu as déjà essayé jsWebkit ? Ca pourrait aider ! (ca remplace execute_script et la manip via le title, ou les liens cliqués)
Et sous gtk3, get_dom_document() doit fonctionner ? (pas essayé perso)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#19 Le 22/06/2012, à 13:49
- AnsuzPeorth
Re : [python/webkit] Media Browser
Je connaissais sans connaitre le gtk pour javascript, mais pas GJS.
Mais là, avec l'introspection, on a accès a plus !!!!
http://git.gnome.org/browse/gjs/tree/ex … h=gjs-1-30
Par conte, je pense pas que le navigateur puisse exécuter cela (d'un script venant d'un site) ? Enfin j'espère !
En tout cas, ca ouvre pas mal de choses .... On va finir par se passer de libs graphique, juste un navigateur qui fait tout :d (comme gnome-shell je présume)
Dernière modification par AnsuzPeorth (Le 22/06/2012, à 13:53)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
Pages : 1