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.

#1 Le 06/11/2011, à 19: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 :

1320599047.png

PICTURES:

1320599061.png

1320599069.png


MUSIC:

1320599072.png

1320599100.png


VIDEO:

1320599105.png



Un petit apercu en video : http://www.youtube.com/watch?v=LNvU8JqrIks


David [aka] ADcomp

Hors ligne

#3 Le 06/11/2011, à 20:25

ADcomp

Re : [python/webkit] Media Browser

salut frafa,

Sympa comme projet , mais codé en java. ( I hate java .. tongue ).

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, à 17: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, à 18:31

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.


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

AnsuzPeorth

Re : [python/webkit] Media Browser

AnsuzPeorth a écrit :

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, à 19: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.

1321033865.png

Nouvel video : http://www.youtube.com/watch?v=GJwCXVIXfWg

source - https://github.com/adcomp/webkit-media-browser

AnsuzPeorth a écrit :

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 wink


David [aka] ADcomp

Hors ligne

#8 Le 18/06/2012, à 17: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 .. mad

gestion de l’interface via Gtk : grosse erreur. Juste parce que je maitrisais mieux python que javascript.  hmm

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.

webkit_media_browser1

webkit_media_browser2


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

#9 Le 20/06/2012, à 10:14

PengouinPdt

Re : [python/webkit] Media Browser

Hummm, je vais aller me renseigner quant à webkit...
Tu me donnes des idées tongue


Ego ~
YUP.py :: Yet Uploader Pixxie.py :: script python : post d'images sur forum !

Hors ligne

#10 Le 20/06/2012, à 11: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, à 11:17)


David [aka] ADcomp

Hors ligne

#11 Le 20/06/2012, à 12:03

PengouinPdt

Re : [python/webkit] Media Browser

@ADComp : Rohhh, merci tu es vraiment trop gentil big_smile
J'apprécie beaucoup.


Ego ~
YUP.py :: Yet Uploader Pixxie.py :: script python : post d'images sur forum !

Hors ligne

#12 Le 20/06/2012, à 16: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, à 22:15

ADcomp

Re : [python/webkit] Media Browser

@Mathieu147:  un petit dessin vaut mieux qu'un mauvais discours wink

Webkit MediaBrowser


edit: comme d'habitude, merci à Gimp (crop) et Inkscape (mise-en-page)  tongue

Dernière modification par ADcomp (Le 20/06/2012, à 22:33)


David [aka] ADcomp

Hors ligne

#14 Le 21/06/2012, à 10: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, à 08:38

Mathieu147

Re : [python/webkit] Media Browser

ADcomp a écrit :

@Mathieu147:  un petit dessin vaut mieux qu'un mauvais discours wink

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, à 11: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, à 12:58

AnsuzPeorth

Re : [python/webkit] Media Browser

bjr,
Ca m'enerve, tu fais toujours de trucs jolie toi .... tongue

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

#18 Le 22/06/2012, à 14:14

ADcomp

Re : [python/webkit] Media Browser

salut @AnsuzPeorth  lol

non, pas encore testé jsWebkit. j'ai gardé la méthode utilisée dans la 1er version. j'ai vu aussi qu'il y avait aussi gjs maintenant .. mais sans plus.


David [aka] ADcomp

Hors ligne

#19 Le 22/06/2012, à 14: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, à 14:53)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne