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". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#101 Le 03/01/2012, à 03:55

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Bonjour,

Topic super intéressant. Serait il possible de le rendre compatible avec google chrome?

Hors ligne

#102 Le 03/01/2012, à 13:21

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Serait il possible de le rendre compatible avec google chrome?

Rien ne devrais l'empêcher. Avec un peu de chance, les scripts seront déjà compatibles. Il n'y a pas encore eu de retour avec ce navigateur donc c'est à voir.
Commence par remplacer "firefox" par "la-commande-qui-lance-google-chrome" à la ligne BROWSER="firefox" de chacun des scripts. Ensuite, essais les. Si cela fonctionne, parfait ! Sinon, on fera quelques tests pour que j'ajoute une exception.

Dernière modification par lylambda (Le 03/01/2012, à 19:07)

Hors ligne

#103 Le 03/01/2012, à 14:43

Keno40

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

J'utilise l'option Flash videoreplacer mais il faut flashblock pour que cela fonctionne bien.

Hors ligne

#104 Le 04/01/2012, à 04:31

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Le script ne fonctionne pas chez moi. J'ai "aucune vidéo trouvée". Que ce soit avec firefox ou avec google-chrome.

Je dois mal m'y prendre. Je lance une vidéo sur Youtube et pendant qu'elle se lit, je lance le script. C'est ça qu'il faut faire?

Hors ligne

#105 Le 05/01/2012, à 17:29

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Je lance une vidéo sur Youtube et pendant qu'elle se lit, je lance le script. C'est ça qu'il faut faire?

À priori, oui. Pense juste à mettre la vidéo flash en pause.

Le script ne fonctionne pas chez moi.

Déjà, as-tu toutes les dépendances bien installées ? Les scripts ne dépendent que de grep, zenity, awk, du navigateur et optionnellement du lecteur.

Si oui, on peut faire quelques tests, par étapes dans un terminal, après avoir lancé une vidéo flash dans ton navigateur:

Test 1 : Détermination du n° du processus flash
- Avec Firefox, regarde si tu obtiens un chiffre en retour à la commande suivante. Si oui, quel est-il ?

ps aux | grep flash | grep -v "grep" | awk '{print $2}'

- Pour un autre navigateur comme Google Chrome, utilise pgrep [BROWSER] en remplaçant [BROWSER] par la commande de ton navigateur.

pgrep [BROWSER]

Si tu obtiens un chiffre, passe au test suivant. Sinon donne moi le retour non tronqué en retirant  | awk '{print $2}' pour Firefox.

Test 2 : Déterminer le n° de la vidéo
- Tape la commande suivante, avec [X] = le chiffre du retour précédent. Tu devrais obtenir un nombre (appelons le [Y]), probablement "16" si tu n'as lancé qu'une seule vidéo flash.

cd /proc/[X]/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd

Si tu n'obtiens rien ou quelque chose d'étrange, donne moi le retour non tronqué en retirant  | awk '{print $8}'.

Test 3 : Lecture d'une vidéo
- Si tout s'est bien déroulé pour les commandes précédentes, testons la lecture direct dans ton lecteur. Remplace [X], [Y] par les nombres obtenus avant et [PLAYER] par la commande de ton lecteur (vlc par exemple).

[PLAYER] /proc/[X]/fd/[Y]

Si ces deux étapes se passent bien, le problème ne vient pas du script en tant que tel, mais d'autre chose : variables mal spécifiées, scripts non-executables, dépendances manquantes, etc.

Dernière modification par lylambda (Le 05/01/2012, à 17:34)

Hors ligne

#106 Le 05/01/2012, à 18:36

Poun64

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Salut toul'monde !
Salut lylambda smile !

Je reviens sur le topic après l'avoir un peu délaissé....
La version du script Play-Flash 0.5 me convenait bien jusqu'à ce jour...

Drame dans la famille, les fifilles ne peuvent plus regarder depuis quelques jours "Plus belle la vie", ici : http://www.pluzz.fr/
Raison :
Sur ma 10.4 LTS, j'étais resté volontairement en flash 10.1 et une version 10.2 ou supérieure est demandée pour lire le feuilleton.
J'ai donc installé la version flash 10.3 qui permet la lecture (et ça rame comme attendu), mais impossible de lire avec mon lecteur externe totem : Pas de vidéo trouvée.

Question 1 : Ils ont passé ça en "vrai streaming" ou quoi ?

Question 2 : Ton script en version 0.5 fonctionne-t-il toujours avec flash 11.1 ?
(j'ai essayé mais ce script 0.5 ne fonctionne pas chez-moi sous flash 11, alors que les mêmes vidéos sont lisibles sous flash 10)

Question 3 : Qu'apporte le script en version 0.8 de plus, alors qu'il ne trouve pas de vidéo chez moi, là où la version 0.5 les trouve toujours ?

neutral

Dernière modification par Poun64 (Le 05/01/2012, à 19:21)


L'expérience est une chandelle qui n'éclaire que celui qui la porte.
=======================================================================
Ubuntu 12.04.2 LTS - Gigabyte GA H77M - Intel Core I7 3770K / Ivy Bridge - 4 cœurs - 3,5 Ghz - 8 Go de RAM
Ubuntu 12.04.3 LTS - ASRock N68C-GS FX - AMD Phenom X4 Quad-Core 9500 - 2,2 Ghz - GeForce 8600 GT - 4 Go de RAM

Hors ligne

#107 Le 06/01/2012, à 01:59

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Test1:
Oui j'ai un chiffre: le 3850. Pour info j'ai quitté la fenêtre Youtube et il y avait toujours le 3850. Ensuite j'ai redémarré FF et j'obtiens  4002.

(je te propose de rester sous FF pour le moment)

Test2: J'obtiens 19 pour le retour de cette commande:

cd /proc/4002/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd

Test3:
La commande lance bien la vidéo:

vlc /proc/4002/fd/19

J'ai donc un problème autre...

-Variables mal spécifiées j'ai ça:

PLAYER="vlc"
# Nom du lecteur à utiliser
## /!\ À remplacer si besoin.
BROWSER="firefox"
# Nom du navigateur à utiliser
## /!\ À remplacer si besoin.

-le script est exécutable vu que j'ai bien la notif pour me dire qu'il n'y a pas de vidéo trouvée

-le script ne me donne aucun message d'erreur lorsque je le lance dans un terminal c'est donc que les dépendances sont satisfaites.

T'as une autre idée?

Je suis déjà très content d'avoir réussi les 3 tests. Un grand merci déjà!

Hors ligne

#108 Le 06/01/2012, à 13:58

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

@ pipocas :
Le script n'étant qu'un ensemble de fioritures autour de ces 3 commandes, je me demande bien d'où vient le problême hmm . Tu utilises bien les dernières versions des scripts, Play-Flash 0.8 et Copy-Flash 0.6 ?

En tout cas, puisque tu as le message "pas de vidéo trouvée", tu as raison le script fonctionne en partie.
Si tu dispose bien des dernières versions, on va d'ailleurs se concentrer dessus. Les tests précédents montrent que ton système peut lire les vidéos flash, mais lorsque le script les dénombre, il n'en compte aucune :

if [ "$NBRE_FICHIER" == "0" ]; then
notify-send -i error "Play-Flash" "\nErreur : aucune vidéo trouvée"

Le problême vient peut être de la détermination de de la variable NBRE_FICHIER.
Pour vérifier refais le test 1. Puis, sans relancer firefox, réalise le test suivant avec 1,2 puis 3 vidéos flash ouvertes chacune dans un onglet de firefox (téléchargés mais en pause). Enfin ferme ces onglets et fait le test une dernière fois:

Test 4 : Détermination du nombre de fichiers vidéos
- Tape la commande suivante, avec [Y] = le chiffre du test 1.

echo $(cd /proc/[Y]/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd) | wc -w

Tu dois obtenir le chiffre 1, 2, 3 puis 0. Si c'est bien le cas, le probleme vient d'ailleurs.

--------------------------------------------------------------

@Poun64 :
Salut !

Question 1 : Ils ont passé ça en "vrai streaming" ou quoi ?

Impossible à dire de mon coté, je n'arrive même pas à lancer une vidéo sur ce site. Le chargement dure indéfiniment chez moi.

Question 2 : Ton script en version 0.5 fonctionne-t-il toujours avec flash 11.1 ?

Non, pas la 0.5. Mais les scripts sont passés respectivement en version 0.6 et 0.8 pour pallier à ce problême et ils fonctionnent correctement (cf ce message de titan77 qui a repéré et corrigé le bug).

Question 3 : Qu'apporte le script en version 0.8 de plus, alors qu'il ne trouve pas de vidéo chez moi, là où la version 0.5 les trouve toujours ?

Tu ne ferais pas la confusion entre Play-Flash (maintenant en 0.8) et Copy-Flash (maintenant en 0.6) ?
Comme dit précedement, une modification mineure à été apportée sur chacun d'eux (justifiant ce +0.1) pour éviter un bug avec Flash 11.1.
Si tu fais référence seulement à Play-Flash, je dois admettre ne pas me souvenir de toutes les modifications apportées entre la 0.5 et la 0.8. Il faudrait me renvoyer Play-Flash 0.5 pour que je relise le code.

Dernière modification par lylambda (Le 06/01/2012, à 14:12)

Hors ligne

#109 Le 07/01/2012, à 11:43

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

TEST 4: J'ai bien le décompte qui est parfait: il compte le nombre le vidéos flash en cours. Ça vient donc d'ailleurs.

Hors ligne

#110 Le 07/01/2012, à 12:17

Poun64

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Salut Lylambda smile !

Pour bien définir ma config :
- Ubuntu 10.04 LTS - Noyau 2.6.32.37 - Gnome 2.30.2
- Firefox 3.6.24 (la version des dépôts Ubuntu Lucid)
- Pour ce qui est de Flash, j'ai sous la main les fichiers "libflashplayer.so" en versions 10.1.102 - 10.2.153 - 10.3.183 et 11.1.102.

Après mes essais, les "libflashplayer.so" en versions 10 (1,2 et 3) sur Firefox 3 sont opérationnelles.
La migration vers le flashplayer en version 11, fait bugger Firefox 3. Je ne suis pas le seul : http://forum.ubuntu-fr.org/viewtopic.php?id=760651
S'agissant de mes stations de travail, je n'ai pas joué avec le feux et je suis resté en version Firefox 3.6.24. C'est elle qui est dans les dépôts 10.04 LTS.

Impossible à dire de mon coté, je n'arrive même pas à lancer une vidéo sur ce site. Le chargement dure indéfiniment chez moi.

Cela ne m'étonne pas, démarre Firefox et va directement sur http://www.pluzz.fr/
puis va sur "Plus belle la vie". Je n'ai droit qu'à un essai, si je veux relire un 2ème fichier sous une même session Firefox, ça ne marche pas... Et vive Adobe !
Edit :
Je viens de faire un test avec mon XP sous Firefox 9 et FlashPlayer 11 : Ça ne marche pas, le téléchargement n'en finit pas.

Tu ne ferais pas la confusion entre Play-Flash (maintenant en 0.8) et Copy-Flash (maintenant en 0.6) ?

Non-non, je parle bien de Play-Flash en version 0.5. Elle est opérationnelle chez-moi sur les Flash en version 10.

Si tu fais référence seulement à Play-Flash, je dois admettre ne pas me souvenir de toutes les modifications apportées entre la 0.5 et la 0.8. Il faudrait me renvoyer Play-Flash 0.5 pour que je relise le code.

Voici la version 0.5.

#!/bin/bash
##########################################################################################################
# Description : Permet de regarder une vidéo flash dans un lecteur externe plutôt que dans le navigateur #
# Fonctionne si les vidéos sont déposées sous /temp ou sous /home/user/.mozilla/firefox/xxxdefault/Cache #
# Dépendances: grep zenity awk vlc smplayer totem                                                        #
# Auteurs: Baz00 Adapté par Edouard (http://www.inouire.net/)                                            #
#          Amélioré par Mathieu147 et Retouché par lylambda                                              #
# Version: 0.5                                                                                           #
# Licence: gpl                                                                                           #
# http://wavemaker.free.fr/index.php/post/Script-Bash-pour-ouvrir-les-vidéos-Flash-dans-VLC              #
##########################################################################################################

PLAYER="totem"
# Nom du player à utiliser (à modifier par l'utilisateur)

NPROCESS=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
# Numéro du processus Flash 

FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep Flash | awk '{print $8}' && cd)
# Liste les fichiers vidéos

NBRE_FICHIER=$(echo $FICHIER | wc -w)
# Compte le nombre de fichiers vidéos

PROCESSPID=$(pgrep $PLAYER)
# Recupère le PID du processus du player

    if [ "$PROCESSPID" != "" ]; then
        kill $PROCESSPID && echo "Stop $PLAYER (PID: $PROCESSPID)"
    fi
    # Si un ou plusieurs processus existe alors on le(s) tue

    if [ "$NBRE_FICHIER" == "0" ]; then
        notify-send -i error "Lecteur de Flash" "Pas de vidéo trouvée"
        # Message d'erreur renvoyé par NotifyOSD. Utilisez la ligne suivante en cas de préférence pour les fenêtres zenity
        # zenity --info --title="Erreur" --text="\n\nPas de vidéo trouvée !    " # (Note : "\n" fait un renvoi à la ligne suivante)
        
    

        elif [ "$NBRE_FICHIER" != "1" ]; then
        to_print=""
        for poet in $FICHIER;
            do date=$(stat -Lc '%y' /proc/$NPROCESS/fd/$poet | awk -F \. '{print $1}');
                        nom=$(stat -c '%N' /proc/$NPROCESS/fd/$poet | awk '{print $3}'| cut -d"/" -f3);
            to_print="$to_print \"\" \"$poet\" \"$nom\" \"$date\""; 
        done;
        video_a_regarder=$(echo $to_print | xargs zenity --title='Choix du film à lancer' --list --text=" " --column="Choix" --column=" N°" --column="Nom" --column="Date" --radiolist --width=500 --height=300  --separator=' ')
        if [ -z "$video_a_regarder" ]; then  # Bouton annuler ou aucune vidéo choisie
            exit 0;
        fi
        $PLAYER /proc/$NPROCESS/fd/$video_a_regarder &
    else
        $PLAYER /proc/$NPROCESS/fd/$FICHIER &
    fi

exit 0

smile

Dernière modification par Poun64 (Le 07/01/2012, à 14:07)


L'expérience est une chandelle qui n'éclaire que celui qui la porte.
=======================================================================
Ubuntu 12.04.2 LTS - Gigabyte GA H77M - Intel Core I7 3770K / Ivy Bridge - 4 cœurs - 3,5 Ghz - 8 Go de RAM
Ubuntu 12.04.3 LTS - ASRock N68C-GS FX - AMD Phenom X4 Quad-Core 9500 - 2,2 Ghz - GeForce 8600 GT - 4 Go de RAM

Hors ligne

#111 Le 08/01/2012, à 17:08

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

@ pipocas : Bon, il va falloir faire du débogage. Je vais modifier le script avec des echo un peu partout pour voir où cela bloque.
Avant cela, tente malgré tout un copié-collé du script du premier message puis réessaye de lancer une vidéo. On sera ainsi certain que tu disposes de la dernière version (ton problème ressemble un peu à celui apporté par la mise à jour de flash 11.1).
Ce serais bien aussi de faire des essais (voir les tests ci-dessus) avec Chrome. Le problème est le même ?
EDIT : Script de débogage dans le message suivant.

@Poun64 : Ouch ! Tu n'as pas un Firefox tout neuf ^^.
De mon coté je suis toujours en 10.10, et Firefox 9.01 fonctionne parfaitement avec Flah11.1 : les vidéos incrustés et les sites de streaming classiques (viméo, youtube, etc.) ne me posent aucun problème (avec ou sans mon script). Tente à l'occasion.
Par contre, Pluzz.fr ne veut vraiment pas de moi (il faudra que j'essais réellement au démarrage).

Concernant les améliorations entre Play-Flash 0.5 et 0.8, il y a :
- La restructuration du code pour mettre au début les variables à modifier selon les config perso.
À savoir PLAYER et BROWSER : mettre son propre lecteur et navigateur est plus évident.
- L'adaptation du script selon le navigateur : Firefox et Iceweasel nécessite une commande de détection du numéro du processus flash particulière. Elle est différente de celle de la plupart des autres navigateurs. Une fois BROWSER spécifiée, le script choisis la bonne commande tout seul.
- La correction de la détection des fichiers vidéos suite au passage à Flash 11.1
On utilise grep /tmp/Flash au lieu de grep Flash pour éviter les faux positifs bloquants. D'après mes tests, cette correction n'impacte pas la version10.x de Flash.
- Petite amélioration de la fenêtre de choix zenity (si plusieurs vidéos sont présentes).
- Ajout de bulles de notification (via NotifyOSD).
- Code commenté étape par étape.

La structure est malgré tout la même. Normalement, tu ne devrais pas avoir de régressions venant du script.

Dernière modification par lylambda (Le 08/01/2012, à 18:47)

Hors ligne

#112 Le 08/01/2012, à 18:53

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

@ pipocas : Voilà le script de débogage promis. Copie-colle le code suivant dans un fichier texte, met-le en exécutable plus teste-le (pas dans un terminal). Ensuite colle ici le contenu du fichier "Debug_Play-Flash" créé dans ton Home.

#!/bin/bash
#########################################################################################################
# Description: Permet de regarder une video flash dans le lecteur plutôt que dans le navigateur-Debug.  #
# Dépendances: grep; zenity; awk; notify-osd; lecteur vidéo; navigateur internet                        #
# Auteurs: Baz00; Adapté par Edouard ( http://www.inouire.net/ );                                       #
# Amélioré par Mathieu147; Refonte par lylambda; titan77 (corrections)                                  #
# Version: Play-Flash_Debug 0.8                                                                         #
# Licence: gpl                                                                                          #
# http://forum.ubuntu-fr.org/viewtopic.php?id=424080                                                    #
# http://wavemaker.free.fr/index.php/post/Script-Bash-pour-ouvrir-les-vidéos-Flash-dans-VLC             #
#########################################################################################################

PLAYER="vlc"
# Nom du lecteur à utiliser
## /!\ À remplacer si besoin.
BROWSER="firefox"
# Nom du navigateur à utiliser
## /!\ À remplacer si besoin.

    if [[ $BROWSER == firefox || $BROWSER == iceweasel ]]; then
        NPROCESS=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
                # Numéro du processus flash si utilisation de firefox ou iceweasel
    else
        NPROCESS=$(pgrep $BROWSER)
        # /!\ Commande testée et validée pour midori, arora, epiphany et uzbl-core. Erreur possible pour d'autres navigateurs.
    fi

FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd)
# Liste les fichiers vidéos
NBRE_FICHIER=$(echo $FICHIER | wc -w)
# Compte le nombre de fichiers vidéos
PROCESSPID=$(pgrep $PLAYER)
# Recupère le PID du processus du lecteur
DEBUG="1/ PLAYER : $PLAYER ; BROWSER : $BROWSER
2/ NPROCESS : $NPROCESS
3/ FICHIER : $FICHIER
4/ NBRE_FICHIER : $NBRE_FICHIER"

    if [ "$PROCESSPID" != "" ]; then
        kill $PROCESSPID
            # Si un ou plusieurs processus de lecteur existe(nt) alors on le(s) tue
    fi


    if [ "$NBRE_FICHIER" == "0" ]; then
        notify-send -i error "Play-Flash" "\nErreur : aucune vidéo trouvée"
DEBUG="$DEBUG
5/ Pas de fichier détecté : pas de lecture" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Notification d'erreur. Utilisez la ligne suivante en cas de préférence pour les fenêtres zenity
              ## zenity --info --title="Erreur" --text="Aucune vidéo trouvée."

    elif [ "$NBRE_FICHIER" != "1" ]; then
        to_print=""
        for poet in $FICHIER;
            do date=$(stat -Lc '%y' /proc/$NPROCESS/fd/$poet | awk -F \. '{print $1}');
                        nom=$(stat -c '%N' /proc/$NPROCESS/fd/$poet | awk '{print $3}'| cut -d"/" -f3);
            to_print="$to_print \"\" \"$poet\" \"$nom\" \"$date\""; 
        done;
        video_a_regarder=$(echo $to_print | xargs zenity --title='Choix de la vidéo :' --list --text="" --column="  " --column="N°" --column="Nom" --column="Date" --radiolist --width=500 --height=300  --separator=' ')
        if [ -z "$video_a_regarder" ]; then #bouton annuler ou aucune video choisie
            exit 0;
        fi
        # Choix de la vidéo à visionner si plusieurs en parallèle
        flashnom=$(stat -c '%N' /proc/$NPROCESS/fd/$video_a_regarder | awk '{print $3}'| cut -d"/" -f3)
        notify-send -i $PLAYER  "Play-Flash" "\nLecture de la vidéo $flashnom dans $PLAYER" &
        # Notification de lecture
        $PLAYER /proc/$NPROCESS/fd/$video_a_regarder
DEBUG="$DEBUG
5/ $NBRE_FICHIER fichiers détectés : choix fait ($video_a_regarder), lecture de la vidéo $flashnom dans $PLAYER" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Lancement de la lecture

    else
        flashnom=$(stat -c '%N' /proc/$NPROCESS/fd/$FICHIER | awk '{print $3}'| cut -d"/" -f3)
        notify-send -i $PLAYER "Play-Flash" "\nLecture de la vidéo $flashnom dans $PLAYER" &
        $PLAYER /proc/$NPROCESS/fd/$FICHIER
DEBUG="$DEBUG
5/ 1 fichier détecté : lecture de la vidéo $flashnom dans $PLAYER" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Notification et lecture directe si une seule vidéo est présente 
    fi

exit 0

Edit : Simplification du code

Dernière modification par lylambda (Le 09/01/2012, à 02:18)

Hors ligne

#113 Le 09/01/2012, à 19:37

Poun64

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Bonsoir Lylambda smile !

@Poun64 : Ouch ! Tu n'as pas un Firefox tout neuf

Je sais, c'est pourtant la version actuelle des dépôts pour Lucid LTS.
J'avais l'intention d'attendre la sortie de la prochaine LTS en avril pour tester tout ça, avec comme objectif de faire migrer toutes mes bécanes...

De mon coté je suis toujours en 10.10, et Firefox 9.01 fonctionne parfaitement avec Flah11.1... Par contre, Pluzz.fr ne veut vraiment pas de moi (il faudra que j'essais réellement au démarrage).

Oups j'ai bien fait d'attendre alors big_smile
Je testerai donc le Play-Flash 0.8 quand je passerai à un Flash 11...

Merci beaucoup

wink

Dernière modification par Poun64 (Le 09/01/2012, à 19:38)


L'expérience est une chandelle qui n'éclaire que celui qui la porte.
=======================================================================
Ubuntu 12.04.2 LTS - Gigabyte GA H77M - Intel Core I7 3770K / Ivy Bridge - 4 cœurs - 3,5 Ghz - 8 Go de RAM
Ubuntu 12.04.3 LTS - ASRock N68C-GS FX - AMD Phenom X4 Quad-Core 9500 - 2,2 Ghz - GeForce 8600 GT - 4 Go de RAM

Hors ligne

#114 Le 09/01/2012, à 19:46

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

@lylambda. Déjà merci pour ton temps pour résoudre ce bug.

J'ai créé un fichier avec ton script et je l'ai rendu exécutable. Je lance une vidéo youtube avec FF. Ensuite je lance ton script de debug (pas dans un terminal. Voilà le résultat dans le fichier ainsi créé:

1/ PLAYER : vlc ; BROWSER : firefox
2/ NPROCESS : 1973
1988
1989
3/ FICHIER : 
4/ NBRE_FICHIER : 0
5/ Pas de fichier détecté : pas de lecture

Pour info je me suis fait un mini-script qui fonctionne (avec une seul vidéo à la fois). Voici son contenu:

#!/bin/bash

NPROCESS=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd)
vlc /proc/$NPROCESS/fd/$FICHIER

Avec mon code
NPROCESS = 1973
FICHIER = 16

Dernière modification par pipocas (Le 09/01/2012, à 19:52)

Hors ligne

#115 Le 09/01/2012, à 22:13

mydjey

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Perso j'utilise clive, mais le sujet m'intéresse.


Mon site : http://mydjey.eu/

Hors ligne

#116 Le 09/01/2012, à 22:26

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Poun64 a écrit :

Oups j'ai bien fait d'attendre alors

Effectivement, si tu veux éviter une scène familiale, cela vaut mieux tongue
Quoique cela aurait été l'occasion d'un sevrage salutaire wink

---------------------------------------------------------------

pipocas a écrit :

Déjà merci pour ton temps pour résoudre ce bug.

Il n'y pas de quoi smile . C'est l'occasion pour moi de me remettre un peu au bash.
Le debug met en évidence le problème : le script te détecte plusieurs processus flash (NPROCESS), ce qui n'est pas normal. Du coup, il continu le script avec l'un d'eux, qui n'est apparemment pas le bon. Aucune vidéo n'est alors détectées.

Le souci viendrait de la détermination de NPROCESS :

NPROCESS=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')

Ce qui m'étonne, c'est que mon script te fasse obtenir plusieurs retours, tandis que le code dans ton script simplifié ou dans un terminal ne t'en donne qu'un seul… Très surprenant puisque c'est la même commande !

- Primo, que te donne le debug avec Chrome avec une vidéo chargée ?
- Secondo, que te donne la commande suivante ?

ps aux | grep flash | grep -v "grep"

Si tu n'as pas plusieurs lignes de retour, il faudra que je modifies le code du script de debug.
- Tertio, bog333 avait rencontré un problème similaire. Il l'avait résolu en ajoutant une boucle qui vérifie tout les numéros de processus trouvés. Pourrais-tu tester sa modification du script ?
Remplace simplement

    if [[ $BROWSER == firefox || $BROWSER == iceweasel ]]; then
        NPROCESS=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
                # Numéro du processus flash si utilisation de firefox ou iceweasel
    else
        NPROCESS=$(pgrep $BROWSER)
        # /!\ Commande testée et validée pour midori, arora, epiphany et uzbl-core. Erreur possible pour d'autres navigateurs.
    fi

FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep /tmp/Flash | awk '{print $8}' && cd)

par

    if [[ $BROWSER == firefox || $BROWSER == iceweasel ]]; then
        NPROCESSTMP=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
        # Numéro du processus flash si utilisation de firefox ou iceweasel
    else
        NPROCESSTMP=$(pgrep $BROWSER)
        # /!\ Commande testée et validée pour midori, arora et uzbl-core. Erreur possible pour d'autres navigateurs.
    fi

for NPROCESS in $NPROCESSTMP
do
    FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep Flash | awk '{print $8}' && cd)

L'idéal pour moi serait de comprendre la nature de ces faux positifs pour modifier en conséquence la commande déterminant NPROCESS. Si cela s'avère impossible et puisque c'est un bug récurant, j'intégrerais la boucle supplémentaire de bog333.

---------------------------------------------------------------

mydjey a écrit :

Perso j'utilise clive, mais le sujet m'intéresse.

Ce logiciel fonctionne pour toutes les vidéos en ligne ou il est spécifique à quelques sites?

Dernière modification par lylambda (Le 09/01/2012, à 22:33)

Hors ligne

#117 Le 09/01/2012, à 22:38

mydjey

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

lylambda a écrit :
Poun64 a écrit :
mydjey a écrit :

Perso j'utilise clive, mais le sujet m'intéresse.

Ce logiciel fonctionne pour toutes les vidéos en ligne ou il est spécifique à quelques sites?


Selon mon expérience et selon le man d'ailleurs il permet de télécharger sur un grand nombre de site mais pas sur tous, on peut donc considérer qu'il est spécifique à tel ou tel site :

Extrait de Man clive :

DESCRIPTION
clive is a command line video extraction utility for Youtube and other similar video-sharing websites. It was written to work
       around the Adobe Flash plugin requirement as the technology is poorly supported on Unix-like systems.

       clive is not an universal video extraction utility. In fact, it supports only a number of video websites. Each website typically
       exposes access to the video content in a very different way, meaning that clive has to be customized for each website in order to
       download any videos from them.

Mon site : http://mydjey.eu/

Hors ligne

#118 Le 09/01/2012, à 22:45

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Déjà pour ceux qui veulent utiliser ton script avec google chrome, il faut indiquer chrome et non google-chrome dans le script.

1-Voilà le résultat avec chrome:

1/ PLAYER : vlc ; BROWSER : chrome
2/ NPROCESS : 1849
1856
1858
1889
1897
1902
1908
1913
1921
1925
1933
1937
1941
1950
2100
2185
3/ FICHIER : 
4/ NBRE_FICHIER : 0
5/ Pas de fichier détecté : pas de lecture

C'est pire donc et mon script lui fonctionne aussi avec chrome.

2-Pour la commande

ps aux | grep flash | grep -v "grep"

oui j'ai plusieurs lignes en retour.

3-pour la modification avec la boucle, j'ai une erreur. Il me dit

/play-flash_debug.sh: ligne 85: Erreur de syntaxe : fin de fichier prématurée

Il n'y aurait pas une syntaxe à mettre pour la fin du do?

Hors ligne

#119 Le 09/01/2012, à 23:01

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

mydjey a écrit :

Selon mon expérience et selon le man d'ailleurs il permet de télécharger sur un grand nombre de site mais pas sur tous, on peut donc considérer qu'il est spécifique à tel ou tel site

D'accord, donc ils utilisent l'analyse de site au lieu de la récupération en local comme moi. À tester! C'est plus efficace (récupération directe de la ressource), mais sans un suivi continu c'est une méthode voué à l'obsolescence. De plus il ne peuvent pas couvrir tout les sites. Mon script non-plus d'ailleurs, lorsqu'on a affaire à du "vrais" streaming.

@pipocas :

1-Voilà le résultat avec chrome:

Oula ! Il va falloir que je fasses aussi une exception pour Chrome. Tout comme Firefox, un simple pgrep n'est pas adapté.
Que donne

ps aux | grep flash | grep -v "grep"

avec Chrome ?

oui j'ai plusieurs lignes en retour.

Pourrais-tu me les donner ? J'ai besoin d'elles pour différencier le vrais retour des faux positifs

Il n'y aurait pas une syntaxe à mettre pour la fin du do?

Probablement. Il ya sans doute une erreur dans le copié-collé que je t'ai indiqué. Réfère toi au script de bog333 ou attend que je teste son code dans Play-Flash (pas sûr que je puisse le faire ce soir).

Hors ligne

#120 Le 09/01/2012, à 23:07

pipocas

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Bon j'ai modifié le script comme tu me l'as demandé. Au début ça ne fonctionnait pas voir post précédent. J'ai ajouté done avant le exit 0 et ça marche! Même avec plusieurs vidéos.
Voila le script qui fonctionne:

#!/bin/bash
#########################################################################################################
# Description: Permet de regarder une video flash dans le lecteur plutôt que dans le navigateur-Debug.  #
# Dépendances: grep; zenity; awk; notify-osd; lecteur vidéo; navigateur internet                        #
# Auteurs: Baz00; Adapté par Edouard ( http://www.inouire.net/ );                                       #
# Amélioré par Mathieu147; Refonte par lylambda; titan77 (corrections)                                  #
# Version: Play-Flash_Debug 0.8                                                                         #
# Licence: gpl                                                                                          #
# http://forum.ubuntu-fr.org/viewtopic.php?id=424080                                                    #
# http://wavemaker.free.fr/index.php/post/Script-Bash-pour-ouvrir-les-vidéos-Flash-dans-VLC             #
#########################################################################################################

PLAYER="vlc"
# Nom du lecteur à utiliser
## /!\ À remplacer si besoin.
BROWSER="chrome"
# Nom du navigateur à utiliser
## /!\ À remplacer si besoin.

     if [[ $BROWSER == firefox || $BROWSER == iceweasel ]]; then
        NPROCESSTMP=$(ps aux | grep flash | grep -v "grep" | awk '{print $2}')
        # Numéro du processus flash si utilisation de firefox ou iceweasel
    else
        NPROCESSTMP=$(pgrep $BROWSER)
        # /!\ Commande testée et validée pour midori, arora et uzbl-core. Erreur possible pour d'autres navigateurs.
    fi

for NPROCESS in $NPROCESSTMP
do
    FICHIER=$(cd /proc/$NPROCESS/fd && ls -la  | grep Flash | awk '{print $8}' && cd)
# Liste les fichiers vidéos
NBRE_FICHIER=$(echo $FICHIER | wc -w)
# Compte le nombre de fichiers vidéos
PROCESSPID=$(pgrep $PLAYER)
# Recupère le PID du processus du lecteur
DEBUG="1/ PLAYER : $PLAYER ; BROWSER : $BROWSER
2/ NPROCESS : $NPROCESS
3/ FICHIER : $FICHIER
4/ NBRE_FICHIER : $NBRE_FICHIER"

    if [ "$PROCESSPID" != "" ]; then
        kill $PROCESSPID
            # Si un ou plusieurs processus de lecteur existe(nt) alors on le(s) tue
    fi


    if [ "$NBRE_FICHIER" == "0" ]; then
        notify-send -i error "Play-Flash" "\nErreur : aucune vidéo trouvée"
DEBUG="$DEBUG
5/ Pas de fichier détecté : pas de lecture" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Notification d'erreur. Utilisez la ligne suivante en cas de préférence pour les fenêtres zenity
              ## zenity --info --title="Erreur" --text="Aucune vidéo trouvée."

    elif [ "$NBRE_FICHIER" != "1" ]; then
        to_print=""
        for poet in $FICHIER;
            do date=$(stat -Lc '%y' /proc/$NPROCESS/fd/$poet | awk -F \. '{print $1}');
                        nom=$(stat -c '%N' /proc/$NPROCESS/fd/$poet | awk '{print $3}'| cut -d"/" -f3);
            to_print="$to_print \"\" \"$poet\" \"$nom\" \"$date\""; 
        done;
        video_a_regarder=$(echo $to_print | xargs zenity --title='Choix de la vidéo :' --list --text="" --column="  " --column="N°" --column="Nom" --column="Date" --radiolist --width=500 --height=300  --separator=' ')
        if [ -z "$video_a_regarder" ]; then #bouton annuler ou aucune video choisie
            exit 0;
        fi
        # Choix de la vidéo à visionner si plusieurs en parallèle
        flashnom=$(stat -c '%N' /proc/$NPROCESS/fd/$video_a_regarder | awk '{print $3}'| cut -d"/" -f3)
        notify-send -i $PLAYER  "Play-Flash" "\nLecture de la vidéo $flashnom dans $PLAYER" &
        # Notification de lecture
        $PLAYER /proc/$NPROCESS/fd/$video_a_regarder
DEBUG="$DEBUG
5/ $NBRE_FICHIER fichiers détectés : choix fait ($video_a_regarder), lecture de la vidéo $flashnom dans $PLAYER" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Lancement de la lecture

    else
        flashnom=$(stat -c '%N' /proc/$NPROCESS/fd/$FICHIER | awk '{print $3}'| cut -d"/" -f3)
        notify-send -i $PLAYER "Play-Flash" "\nLecture de la vidéo $flashnom dans $PLAYER" &
        $PLAYER /proc/$NPROCESS/fd/$FICHIER
DEBUG="$DEBUG
5/ 1 fichier détecté : lecture de la vidéo $flashnom dans $PLAYER" && echo "$DEBUG" > $HOME/Debug_Play-Flash
        # Notification et lecture directe si une seule vidéo est présente 
    fi
done
exit 0

Et le résultat sur le fichier debug:

1/ PLAYER : vlc ; BROWSER : chrome
2/ NPROCESS : 6093
3/ FICHIER : 
4/ NBRE_FICHIER : 0
5/ Pas de fichier détecté : pas de lecture

Curieux non?

Hors ligne

#121 Le 09/01/2012, à 23:20

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

J'ai ajouté done avant le exit 0 et ça marche!

Parfait ! J'avais oublier te t'indiquer de fermer la boucle supplémentaire. À ce rythme tu n'auras bientôt plus besoin de moi wink

Curieux non?

En fait pas du tout. Comme je te l'ai dit, la boucle de bog333 applique le reste du script à chacun des NPROCESS. Là, le fichier de debug ne fait ressortir que les valeurs de la dernière boucle qui s'applique à un faux positif (un "mauvais" NPROCESS). Du coup, la vidéo à bien été lancée sur le bon NPROCESS (dans une boucle précédente) mais ce n'est pas visible dans le debug qui n'a pas été fait pour (les valeurs de 2/ 3/ 4/ et 5/ ont été écrasés par celles de la dernière boucle) .

Pense à me donner les retours précisés dans mon message plus haut. Je pense pouvoir supprimer les faux positifs et éviter la boucle de bog333 (probablement en remplaçant "flash" par une chaîne un peu plus précise).

Dernière modification par lylambda (Le 09/01/2012, à 23:23)

Hors ligne

#122 Le 14/01/2012, à 17:26

titan77

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

salut,
dans mon script j'utilise la chaine "plugin-container" pour la recherche et ça fonctionne bien.

NPROCESS=$(ps aux | grep plugin-container | grep -v "grep" | awk '{print $2}')

par contre j'ai cru que sa ne fonctionnait plus en testant a l'instant sur la nouvelle mint12,mais c'était une video format html5. roll


pour le html5 en modifiant ses 2 lignes comme ceci on peut les récupérées aussi,mais apparement une seule a la fois.

NPROCESS=$(ps aux | grep firefox | grep -v "grep" | grep -v "flash" | awk '{print $2}')
FICHIER=$(cd /proc/"$NPROCESS"/fd && ls -la  | grep "/tmp/mozilla" | awk '{print $8}' && cd)

#123 Le 14/01/2012, à 17:50

grandtoubab

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

mydjey a écrit :
lylambda a écrit :
Poun64 a écrit :

Ce logiciel fonctionne pour toutes les vidéos en ligne ou il est spécifique à quelques sites?


Selon mon expérience et selon le man d'ailleurs il permet de télécharger sur un grand nombre de site mais pas sur tous, on peut donc considérer qu'il est spécifique à tel ou tel site :

Extrait de Man clive :

DESCRIPTION
clive is a command line video extraction utility for Youtube and other similar video-sharing websites. It was written to work
       around the Adobe Flash plugin requirement as the technology is poorly supported on Unix-like systems.

       clive is not an universal video extraction utility. In fact, it supports only a number of video websites. Each website typically
       exposes access to the video content in a very different way, meaning that clive has to be customized for each website in order to
       download any videos from them.

Pas tous les sites

@ubuntu-desktop:~/Vidéos$ clive http://www.pluzz.fr/la-grande-librairie.html
error: no support: http://www.pluzz.fr/la-grande-librairie.html
@ubuntu-desktop:~/Vidéos$

Linux tout seul sur le disque dur  Acer Aspire T650 :=))
RAM: 1,7 Gio, CPU: Intel® Pentium(R) 4 CPU 3.06GHz × 2. Carte graphique Gallium 0.4 on ATI RC410 (Radeon Xpress200)
Partition 1: Debian Jessie & Gnome Version 3.12, Kernel  3.16.3-031603-generic
Partition 2: Ubuntu Trusty 14.04 & Unity

Hors ligne

#124 Le 16/01/2012, à 01:27

syruss2009

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

Salut à tous,

alors j'ai participé à la discussion mais ça fait un bail déjà. Alors j'ai des questions:
1-ce script marche avec chrome?
2-avec gnome 3 ( je présume que oui smile )
3-où se trouve la dernière version du script?

Par ce que là je suis un peu perdu avec tous ces codes big_smile

Merci


Jeune linuxien gabonais
UBUNTU Lucid Lynx
Gateway LT20 Netbook/ Double cœur Intel® Atom™ processor N280-Intel® Atom™ processor N270 - 1 GB of DDR2 -160 GB hard disk drive

Hors ligne

#125 Le 16/01/2012, à 13:33

lylambda

Re : [Astuce] Lire et copier les vidéos flash directement du navigateur

@ syruss2009 :

1-ce script marche avec chrome?

En l'état non, mais c'est tout à fait possible. D'après les retours de pipocas, cela nécessite que j'ajoute une exception (comme pour Firefox). J'attendais plus de précisions pour l'ajouter. À défaut, j'installerais Chrome pour faire les essais de mon coté.

2-avec gnome 3

Il n'y a pas de contre-indication wink .
Par contre, je ne peux pas l'affirmer totalement, n'étant toujours pas passé à cette version de gnome.

3-où se trouve la dernière version du script?

Je modifie toujours le premier message pour actualiser les versions des scripts. Le reste du fil est dévolu aux retours, aux suggestions et aux tests. Généralement, je précise toute mise-à-jour par un Edit et dans un nouveau message. Bref, réfère toi toujours à l'ouverture du fil smile .

----------------------------------------------------------

@titan77 :

dans mon script j'utilise la chaine "plugin-container" pour la recherche et ça fonctionne bien.

C'est effectivement une alternative possible. Tu avais aussi le bug des faux-positifs (blocage par l'obtention de nombreux NPROCESS sans vidéos) ?
Concrètement le grep pour l'exception Firefox et Iceweasel devrait utiliser le plus petit élément différentié de la chaîne suivante (ou à défaut la chaine entière) :

plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so

Le reste est variable selon les systèmes et la version du navigateur. Chez moi "flash" suffit, mais ce n'est apparement pas le cas pour tout le monde. Pour bien déterminer la chaine adéquate, j'ai besoin des retours de pipocas, mais il n'est pas passé depuis. N'arrivant pas à reproduire son bug des faux positifs, je suis un peu bloqué.
Quant à Chrome, il semblerais qu'un simple pgrep (commande qui donne le numéros de processus directement) ne suffit pas. Je vais donc voir pour lui ajouter aussi une exception à l'instar de Firefox.

Ton retour sur la vidéos du html5 est très intéressant ! À l'origine, les script avaient pour but de limiter la lecture des vidéos dans Flash et tout les problèmes qui en découlaient. La balise vidéos du html5 crée moins de problème, mais élargir les scripts à toutes vidéos présentent en ligne pourraient être utile smile .

Dernière modification par lylambda (Le 16/01/2012, à 13:35)

Hors ligne

Haut de page ↑