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)

#1 Le 19/10/2010, à 16:35

lylambda

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

EDIT 11/05/2014 : Mention des scripts de le-peyo pour les sites protégés

Quel Linuxien n'a jamais pesté contre les vidéos flash ? Parfois saccadées et provoquant généralement un emballement du CPU, visionner sur le net en deviendrais moins un plaisir qu'une corvée.
L'astuce de la plupart d'entre nous était de lancer la vidéo dans le lecteur flash, mettre immédiatement en pause, ouvrir le dossier "/tmp", chercher le fichier flv FlashXXX. La vidéo trouvée pouvait ensuite être ouverte dans notre lecteur vidéo ou sauvegardée dans un autre répertoire.

Cependant, depuis la version 10.2 de Flash (février 2011), les vidéos ne sont plus contenues dans "/tmp", mais morcelées dans un dossier "Cache" du navigateur. Ce qui rend impossible les méthodes précédentes.

Voici 2 scripts pour y remédier, adaptés à toutes les versions de Flash et tout les navigateurs :
- Play-Flash : Lance une vidéo (choisie dans une liste si plusieurs sont présentes) directement dans votre lecteur (VLC par défaut)
- Copy-Flash : Attend automatiquement la mise en cache, puis copie la ou les vidéos (sur le Bureau par défaut).

1. Copiez/Collez le script souhaité (présent en fin de message) dans un éditeur de texte (Gedit, etc.).
2. Modifiez les variables BROWSER et PLAYER ou COPY_FOLDER selon vos logiciels de navigation internet, de lecture vidéos ou votre dossier de copie.
3. Rendez le exécutable (par un chmod ou via ses propriétés).

Ensuite, en présence d'une vidéo flash, il vous suffira de l'activer directement de Nautilus (double clic et "lancer") ou mieux, via un lanceur placé dans le panel ou votre dock préféré.
Si vous souhaitez plutôt activer les scripts directement de Firefox, certaines extensions le permettent, notamment AppLauncher (toutes versions de FF). Installez l'extension choisie et spécifiez l'emplacement du script.

Des notifications ont été intégrées afin de prévenir du bon déroulement des scripts, ou des erreurs bloquant leurs fonctionnement.
Exemples :
notify-OSD Notify-OSD

Bon visionnage à tous !


Notes importantes :
1. Ces scripts fonctionnent pour la plupart des vidéos en ligne. Cependant certains sites protègent leur streaming, ce qui bloque leur fonctionnement. Pluzz ou Arte par exemple, mais aussi Youtube depuis début 2014, sont inopérants. Tournez-vous alors vers les scripts et programmes spécialisés sur ces sites en particulier ou utilisez les scripts spécifiques de le-peyo indiqués dans ce message.
2. Les scripts ont été testés sur la plupart des navigateurs libres : firefox, iceweasel, chromium-browser, midori, arora et uzbl-core. Toutefois, Si vous notez un problème avec ceux-ci ou un autre non présents dans la liste, tout retour serait apprécié.
3. Certaines extensions firefox font plus ou moins le même travail que les scripts, tel Video DownloadHelper pour la sauvegarde.
Les avantages des scripts :
- leur légèreté
- adaptables à tout les navigateurs et lecteurs vidéo d'une distribution gnu/linux
- spécifique à aucun site en particulier
4. Dans certain cas (version Ubuntu antérieur à 12.04), une gestion spécifique du format de la date rend les scripts inopérants. Il est alors nécessaire de changer la ligne

VIDEO=$(ls -la "/proc/${PROC}/fd" | grep "/tmp/Flash" | awk '{print $9}')

par

VIDEO=$(ls -la "/proc/${PROC}/fd" | grep "/tmp/Flash" | awk '{print $8}')

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


- Play-Flash :

#!/bin/bash
#########################################################################################################
# Description: Permet de regarder une video flash dans le lecteur plutôt que dans le navigateur.        #
# Dépendances: grep; zenity; awk; lecteur vidéo (vlc, etc.); navigateur internet (firefox, etc.)        #
# Contributions: lylambda; titan77;                                                                     #
# Version: Play-Flash 1.1                                                                               #
# Licence: gpl                                                                                          #
# [url]http://forum.ubuntu-fr.org/viewtopic.php?id=424080[/url]                                         #
#########################################################################################################

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

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

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

# Si on a au moins un processus on le parcours jusqu'à trouver une vidéo.
if [[ "${NPROCESS}" ]]; then
    for PROC in ${NPROCESS};
    do
        # Liste les fichiers vidéos
        VIDEO=$(ls -la "/proc/${PROC}/fd" | grep "/tmp/Flash" | awk '{print $9}')
        # Compte le nombre de fichiers vidéos.
        NBRE_VIDEO=$(echo ${VIDEO} | wc -w)
        ## si au moins une video on a trouvé le processus alors on poursuit.
    if [[ "${NBRE_VIDEO}" != "0" ]];then break; fi
    done
# Si on a pas de processus on quitte.
else notify-send -i error "Play-Flash" "\nErreur : aucun processus trouvé" 
exit 1
fi

# si on a pas de vidéo, on quitte.
if [ "${NBRE_VIDEO}" == "0" ]; then
    notify-send -i error "Play-Flash" "\nErreur : aucune vidéo trouvée"

# Si on a qu'une video, lancement de la lecture.
elif [ "${NBRE_VIDEO}" == "1" ]; then
    flashnom=$(stat -c '%N' /proc/${NPROCESS}/fd/${VIDEO} | awk '{print $3}'| cut -d"/" -f3)
    notify-send -i $PLAYER "Play-Flash" "\nLecture de la vidéo ${flashnom} dans ${PLAYER}"
    ${PLAYER} /proc/${NPROCESS}/fd/${VIDEO}
# Si plusieurs videos, on ouvre une liste pour en choisir une.
else
to_print=""
    for VID in ${VIDEO}; do
    date=$(stat -Lc '%y' /proc/${NPROCESS}/fd/${VID} | awk -F \. '{print $1}');
    nom=$(stat -c '%N' /proc/${NPROCESS}/fd/${VID} | awk '{print $3}'| cut -d"/" -f3);
    to_print="${to_print} \"\" \"${VID}\" \"${nom}\" \"${date}\""; 
    done;
    # Choix de la vidéo à visionner si plusieurs en parallèle
    CHOIX_VIDEO=$(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=' ')
        # Si bouton "annuler" ou aucune video choisie, on quitte.
        if [ -z "${CHOIX_VIDEO}" ]; then
            exit 0;
        fi
    # Lecture de la vidéo choisie.
    flashnom=$(stat -c '%N' /proc/${NPROCESS}/fd/${CHOIX_VIDEO} | awk '{print $3}'| cut -d"/" -f3)
    notify-send -i ${PLAYER}  "Play-Flash" "\nLecture de la vidéo ${flashnom} dans ${PLAYER}"
    ${PLAYER} /proc/${NPROCESS}/fd/${CHOIX_VIDEO}
fi
exit 0

- Copy-Flash :

#!/bin/bash
#########################################################################################################
# Description: Permet de sauvegarder les videos flash en cours dans le navigateur.                      #
# Dépendances: grep; zenity; awk; navigateur internet (firefox, etc.)                                   #
# Contributions: lylambda; titan77;                                                                     #
# Version: Copy-Flash 1.1                                                                               #
# Licence: gpl                                                                                          #
# [url]http://forum.ubuntu-fr.org/viewtopic.php?id=424080[/url]                                         #
#########################################################################################################

# Dossier de copie.
## /!\ À remplacer si besoin.
COPY_FOLDER="${HOME}/Bureau"

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

# Utiliser /tmp comme dossier de copie alternatif si celui indiqué n'existe pas.
if  [[ -d ${COPY_FOLDER} ]]; then 
    echo "directory ... ok" > /dev/null
else
    notify-send -i error "Copy-Flash" "\nErreur : ${COPY_FOLDER} introuvable\nCopie dans /tmp"
    COPY_FOLDER=/tmp
fi

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

# Si on a au moins un processus on le parcours jusqu'à trouver une vidéo.
if [[ "${NPROCESS}" ]]; then
    for PROC in ${NPROCESS}; do
        # Liste les fichiers vidéos
        VIDEO=$(ls -la "/proc/${PROC}/fd" | grep "/tmp/Flash" | awk '{print $9}')
        # Compte le nombre de fichiers vidéos.
        NBRE_VIDEO=$(echo ${VIDEO} | wc -w)
        ## si au moins une video on a trouvé le processus alors on poursuit.
        if [[ "${NBRE_VIDEO}" != "0" ]];then break; fi
    done
# Si on a pas de processus on quitte.
else notify-send -i error "Copy-Flash" "\nErreur : aucun processus trouvé" 
    exit 1
fi

# Si on a pas de vidéo on quitte.
if [ "${NBRE_VIDEO}" == "0" ]; then
    notify-send -i error "Copy-Flash" "\nErreur : aucune vidéo trouvée"

# Pour chaque vidéo trouvée :
else
notify-send -i clock "Copy-Flash" "\n${NBRE_VIDEO} vidéo(s) détectée(s)"
for VID in ${VIDEO}; do
    # Définir le nom de la vidéo.
    renommer=$(stat -c '%N' "/proc/${PROC}/fd/${VID}" | awk '{print $3}'| cut -d"/" -f3)
    # Message d'attente.
    notify-send -i clock "Copy-Flash" "\nMise en cache de la vidéo ${renommer}"

    # Boucle d'attente de mise en cache.
    while true
    do
    #test de la taille (attente 3 secondes mini).
    taille_1=$(stat -Lc '%s' "/proc/${PROC}/fd/${VID}")
    sleep 3
    taille_2=$(stat -Lc '%s' "/proc/${PROC}/fd/${VID}")
        # si on ne peut plus tester la taille alors on ferme car plus de vidéo
    if [[ ! "$taille_1" ]] || [[ ! "$taille_2" ]]; then
            notify-send -i error "Copy-Flash" "\nErreur :\nvidéo ${renommer} perdue"       
            break
    fi
    # si la taille 1 et 2 sont identique, on télécharge la vidéo qui est complète
        if test "${taille_1}" -eq "${taille_2}"; then
        # Définir la taille en Mo de la vidéo.
        taille_mo=$((${taille_2}/10**6))
        # Copie de la vidéo et renommage à la volée.
        notify-send -i folder-download "Copy-Flash" "\nCopie de la vidéo ${renommer} (${taille_mo} Mo) dans ${COPY_FOLDER}"
        cp /proc/${NPROCESS}/fd/${VID} ${COPY_FOLDER}/${renommer}
        break
        fi
    done

done
fi
exit 0

Dernière modification par lylambda (Le 11/05/2014, à 14:22)

Hors ligne

#2 Le 19/10/2010, à 16:46

KRS

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

Si jamais il existe aussi des extensions Firefox qui font ça, me rappelle plus du nom mais ça doit se trouver dans le catalogue.

Hors ligne

#3 Le 20/10/2010, à 23:32

lylambda

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

En cherchant un peu je n'ai trouvé qu'une extension qui correspond  à l'objectif de lire les videos flash dans un lecteur externe : FlashVideoReplacer.
D'après son intitulé, il ne fonctionne que pour 3 sites (Youtube Vimeo et Blip.tv) et qu'avec les plugins Quicktime ou Windows Media Player ... En creusant un peu, il est sencé être compatible avec certains plugins Linux.

Après tests, je n'arrive tout simplement pas à le faire fonctionner et je ne vois rien dans sa config qui permettrait de définir d'autre plugin que les 2 premiers cités.

Bref ce n'est pas probant chez moi, d'autant qu'il semble plus limité que le script de Baz. Par contre, si tu faisais référence à une autre extension je serais intéressé !

Hors ligne

#4 Le 21/10/2010, à 00:27

machiavellian75

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

lylambda a écrit :

Quel Linuxien n'a jamais pesté contre les vidéos flash ? Parfois saccadées et provoquant généralement un emballement du CPU, visionner sur le net en deviendrais moins un plaisir qu'une corvée.
L'astuce de la plupart d'entre nous est de lancer la vidéo dans le lecteur flash, mettre immédiatement en pause, ouvrir le dossier "/tmp", chercher le fichier flv FlashXXX et l'ouvrir via VLC (ou tout autre lecteur lisant ce format).

Or Baz du blog Wavemaker a créé un script bash automatisant cette procédure. Je vous invite à lire son post pour en savoir plus (et le remercier !).

Deux scripts sont proposés selon les goûts:
- script de base
- script offrant le choix de la vidéos à lancer en cas de streaming parallèle (proposé par le lecteur Edouard)

Téléchargez celui qui vous convient le mieux et rendez le exécutable (par un chmod ou via ses propriétés). Ensuite, en présence d'une vidéo flash, il vous suffira de l'activer directement de nautilus ou via un lien dans le panel ou votre dock préféré.

Si vous souhaitez plutôt lancer la vidéo directement de Firefox, une extension permet de lancer le script de son interface : External Application Buttons.
Installez l'extension puis, à l'aide du menu "Personaliser" (clic droit), placer le bouton à l'endroit désiré (barre d'outil, de menu, etc...) et enfin spécifiez l'emplacement du script (menu "Properties".

Les vidéos flash pourront alors être lancés dans VLC (ou autre lecteurs) directement du navigateur !

Avis aux codeurs, sur cette base ne pourrait on pas imaginer une extension Firefox spécifique aux linuxiens ?

merci lylambda super astuce et l'extension marche pas trop mal


ubuntu maverick athlon x2 3800+ 2 giga de ram  nvidia quadro fx 550

http://forum.ubuntu-fr.org/viewtopic.php?id=423293

Hors ligne

#5 Le 21/10/2010, à 20:43

axel55

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

Je viens d'installé l'extension FlashVideoReplacer sur mon Xubuntu 10.04. J'ai testé avec une vidéo You Tube : Le lecteur Totem s'ouvre ( c'est le seul lecteur vidéo installé ) et remplace le lecteur d'Adobe. Il est possible de visionner en plein écran, le seul souci c'est qu'il faut patienter que la vidéo soit totalement chargé pour que la lecture débute.

Hors ligne

#6 Le 25/10/2010, à 15:10

lylambda

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

machiavellian75 a écrit :

merci lylambda super astuce et l'extension marche pas trop mal

ravi que cela t'ai été utile smile

axel55 a écrit :

Le lecteur Totem s'ouvre ( c'est le seul lecteur vidéo installé ) et remplace le lecteur d'Adobe

  C'est une bonne nouvelle que cela fonctionne en partie avec le plugin de Totem ! Ce ne semble pas être le cas avec VLC (mon lecteur vidéo installé)

axel55 a écrit :

il faut patienter que la vidéo soit totalement chargé pour que la lecture débute.

Cette limitation n'est pas agréable, mais dépend peut être que de Totem. Ce lecteur sait-il streamer les flux vidéos ? Dans les commentaires du blog Wavemaker, je crois me souvenir pourtant que certains avaient réglé le script de Baz sur Totem et que cela fonctionnait sans attendre la fin du téléchargement comme avec VLC.
Essaye peut être avec le script pour prendre la solution que tu préfères.

Hors ligne

#7 Le 01/11/2010, à 18:55

Xanatos00

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

Salut,
très intéressant, cependant ce qui est embêtant c'est qu'il faut quand même garder le plugin flash et attendre que la vidéo soit complète dans le cache
je me demande s'il y a pas moyen via greasemonkey ou autre de lancer le chargement de la vidéo en tampon puis récupérer la méthode ci-dessus sans que sa lance automatiquement la lecture sur le site en question
ou tout simplement lire la vidéo en local avec totem sans flash sur firefox
/utopiste

Dernière modification par Xanatos00 (Le 01/11/2010, à 18:56)

Hors ligne

#8 Le 01/11/2010, à 23:57

lylambda

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

Xanatos00 a écrit :

ce qui est embêtant c'est qu'il faut quand même garder le plugin flash et attendre que la vidéo soit complète dans le cache

Devoir utiliser le plugin Flash pour initier le téléchargement, est effectivement ennuyeux. Par contre tu n'as pas besoin d'attendre que la vidéo soit complète (du moins avec VLC). Il suffit que le téléchargement soit plus rapide que la vitesse de lecture (ce qui est généralement le cas en ADSL).

En tout cas, j'aime ton utopie, d'où mon espoir d'une extension adaptée, un jour prochain smile .

Dernière modification par lylambda (Le 01/11/2010, à 23:58)

Hors ligne

#9 Le 02/11/2010, à 20:51

ycDref

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

Il existe minitube ou le greffon youtube pour totem a titre d'info.... légèrement moins tordu comme solution....

Hors ligne

#10 Le 02/11/2010, à 22:24

Xanatos00

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

@ycDref : oui mais non, je cherche plus une solution globale aux vidéos en flash

je ne connais pas très bien la technologie, mais il me semble que c'est divisé en plusieurs parties (animations, vidéos, etc ...)
la c'est le format swf qui m'intéresse, admettons que je désire voir une vidéo en swf, pourquoi ne puis-je pas la télécharger en local sans obligatoirement la lire comme avec un pdf ? et après visionnage en local avec/sans conversion

Hors ligne

#11 Le 08/11/2010, à 00:31

axel55

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

J'avais très rapidement testé le script de Baz après mes constats sur l'extension FlashVideoReplacer, et en effet contrairement à cette dernière, le script de Baz me permet de visualiser la vidéo avec Totem sans attendre que la vidéo soit totalement chargé. Désolé pour la réponse tardive.

Hors ligne

#12 Le 04/01/2011, à 09:35

Mathieu147

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

Si on remplace la ligne 19 du script:

if [ "$NBRE_FICHIER" != "1" ]; then

par ça:

    if [ "$NBRE_FICHIER" == "0" ]; then
      zenity --info --title="Erreur" --text="Aucune vidéo trouvée."
    elif [ "$NBRE_FICHIER" != "1" ]; then

Alors on a un message d'erreur lorsqu'il n'y a aucune vidéo trouvée plutôt que d'avoir une fenêtre de choix vide.


Pffff…

Hors ligne

#13 Le 05/01/2011, à 21:05

lylambda

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

C'est une modification très bien vu, merci Mathieu147 !

Hors ligne

#14 Le 10/02/2011, à 16:43

lylambda

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

La récente mise à jour de Flash (10.2) rend l'ancien script inopérant. Si vous voulez continuer à utiliser votre lecteur personnel pour visionner les vidéos flash sur internet, remplacer le script par celui-ci . Pensez à le rendre à nouveau exécutable.

Ce qui a changé, c'est que les vidéos flash ne sont plus contenus dans le répertoire /tmp mais dans /tmp/Cache. De plus, elles ne sont plus nommées sous la forme FlashXXX mais par une suite de 11 caractères plus ou moins aléatoires.
Pour continuer à utiliser le script, il ne faut donc plus lister les fichiers commençant par "Fla" dans le dossier /tmp comme fesait le script auparavant.
Ma modification lance la recherche dans le dossier /tmp/Cache. Pour cela, facile, il suffisait de rajouter "/Cache".
Par contre, pour sélectionner uniquement les vidéos, j'ai remplacer la ligne FICHIER=$(ls '/tmp/' | grep 'Fla*') par FICHIER=$(cd /tmp/Cache && file -i * | grep video | cut -c1-11 && cd)
Cette commande n'est pas très belle, mais elle permet de sélectionner les fichiers vidéos grâce à leur type mime et donc de passer outre leur nom aléatoire.

Dernière modification par lylambda (Le 10/02/2011, à 16:51)

Hors ligne

#15 Le 11/02/2011, à 21:26

Bat_aaaaahhh

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

Salut !

Chez moi, les fichiers vidéos ne sont pas dans le /tmp/cache mais plutôt dans /proc/XXXX(pid de libflashplayer)/fd. (cf ce topic : http://forum.ubuntu-fr.org/viewtopic.php?id=442415)

Du coup ton script m'affiche toujours "aucune vidéo", normal.

De plus, les fichiers apparaissent encore sous leur ancien nom de format "FlashXXX" :

jordan@jordan-pc:/proc/1881/fd$ ls -la | grep Flash
lrwx------ 1 jordan jordan 64 2011-02-11 20:00 16 -> /tmp/FlashXXpVRynk (deleted)

Ayant peur de mettre les mains dans le cambouis, je n'ose pas toucher à ton script tongue En regardant de loin, je suis tenté de dire qu'il suffit de récupérer le pid de libflashplayer, et d'appliquer l'ancien script non ?




Pour terminer, question subsidiaire : que fait l'attribut -la associé à la commande ls ? man ne m'a pas aidé plus que ça hmm



PS-EDIT : En fait, dans /proc/xxxx/fd, c'est des raccourcis vers les fichiers temporaires qui sont dans le cache mais invisibles, surement parce qu'ils sont deleted. Quelqu'un sait comment afficher les fichiers deleted ?

Dernière modification par Bat_aaaaahhh (Le 11/02/2011, à 22:22)

Hors ligne

#16 Le 12/02/2011, à 01:52

lylambda

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

La méthode de Kanor est aussi fonctionnel chez moi et doit être facilement scriptable puisqu'il suffit de quelques lignes de commande pour repérer le fichier vidéos à lire. À vu de nez, j'utiliserais "cut" pour extraire le n° de processus puis celui de fichier.

Par contre, es-tu sûr de ne pas avoir de vidéos flash avec un nom du genre "3A540F32d01" dans /tmp/Cache lorsque tu as une page firefox avec un streaming quelconque (dans nautilus, met toi en vue "En liste" et clique sur la colonne type) ? Ce serait bizarre qu'elles ne soient dans ce dossier que chez moi.

Pour "-la" de ls, voilà ce qu'indique un "ls --help" :

-l                         utiliser le format long d'affichage
-a, --all                  do not ignore entries starting with .

Donc, sauf erreur, ces options affichent toutes informations des fichiers contenus par le dossier visé par le ls (/proc/xxxx/fd), même ceux cachés (précédés par un point ".")

Hors ligne

#17 Le 14/02/2011, à 00:30

ottakar

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

Bon, ben mise à jour de ce WE pour ma 10.04 LTS et me voilà parmis vous: même soucis que Bat_aaaaahhh pour moi, c'est tout rangé dans

/proc/[PID]/fd/

je n'ai pas de

/tmp/Cache

Et, pareil, je ne sais pas non plus pondre de script, donc...

(Kill Flash)

Hors ligne

#18 Le 14/02/2011, à 02:19

lylambda

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

Mes vidéos se retrouve dans /tmp/Cache sans doute parce que j'ai tout simplement indiqué à Firefox de déplacer son cache dans /tmp… Celui-ci utilisant la ram, ça rend Firefox plus véloce, évite de gratter mon disque dure et, de toute évidence, me permet de récupérer des vidéos plus facilement !

Si ça vous intéresse, il suffit d'ajouter une ligne dans fstab et une clé dans Firefox. Je recopie :

stephdl a écrit :

Il existe plusieurs raisons pour vouloir déplacer le dossier temporaire en Ram, je vais en détailler quelques unes….

    * gagner en temps de lecture (les dossiers telechargés de firefox)
    * économiser le SSD qui a une durée d'écriture/lecture

L'inconvénient majeur sera que les autres utilisateurs seront susceptibles de venir lire votre cache en Ram, cependant

    * souvent les ordinateurs sont mono-utilisateur
    * le /tmp en Ram est vidé à chaque extinction donc pas de rémanence

Il faut bien comprendre que la vitesse d'écriture est bien plus rapide dans la Ram que sur le disque dur, d'où l'interet de cette maneuvre

on y va en ROOT :

   1.

      Éditez le fichier /etc/fstab :

      nano /etc/fstab

   1.

      Ajoutez :

      tmpfs           /tmp            tmpfs           mode=1777               0 0

   2.

      Dans Firefox tapez « about:config » dans la barre d'adresse
   3.

      Éditez ou ajoutez la clé

      browser.cache.disk.parent_directory

      c'est une chaine de caractères, qui doit contenir désormais

      /tmp

puis redémarrez smile

pour vérifier après le boot si cela fonctionne en root dans un terminal avec firefox d'ouvert :

lsof '/tmp'

avant :

lsof '/tmp'
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/lsd/.gvfs
Output information may be incomplete.
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
seahorse- 2113  lsd  cwd    DIR   8,17     4096 16357 /tmp

après :

lsof '/tmp'
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/lsd/.gvfs
Output information may be incomplete.
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
seahorse- 2097  lsd  cwd    DIR   0,17      280  3950 /tmp
firefox-b 2444  lsd   43u   REG   0,17      276 12097 /tmp/Cache/_CACHE_MAP_
firefox-b 2444  lsd   44u   REG   0,17    72327 12098 /tmp/Cache/_CACHE_001_
firefox-b 2444  lsd   45u   REG   0,17    74708 12099 /tmp/Cache/_CACHE_002_
firefox-b 2444  lsd   46u   REG   0,17    72201 12100 /tmp/Cache/_CACHE_003_

on voit donc bien que le cache de firefox est dans le /tmp wink

À l'occasion, j'essaierais tout de même d'adapter le script, mais je ne promet rien ^_^

Hors ligne

#19 Le 14/02/2011, à 13:21

lylambda

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

Finalement, ce n'était pas trop compliqué. Le script est maintenant utilisable par tout le monde sans modifications dans Firefox. Téléchargez le d'ici.

Ce qui a changé :
- Ajout d'une variable définissant le N° de processus de flash (sans prendre en compte le grep en cours) :

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

- Liste les fichiers vidéos par N° selon le N° de processus flash :

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

- Extraction de la date des fichiers vidéos sachant que l'information est contenu dans un lien (option -L pour stat) :

date=$(stat -Lc '%y' /proc/$NPROCESS/fd/$poet | awk -F \. '{print $1}')

-  Extraction du nom des fichiers vidéos sachant que l'information est contenu dans un lien (séquence %N pour stat) :

nom=$(stat -c '%N' /proc/$NPROCESS/fd/$poet | awk '{print $3}'| cut -d"/" -f3)

- Zenity affiche maintenant les colonnes de sélection, "N°", "Nom" et "Date" :

to_print="$to_print \"\" \"$poet\" \"$nom\" \"$date\""

--column="  " --column="N°" --column="Nom" --column="Date"

- La lecture se lance directement dans les dossiers processus :     

$PLAYER /proc/$NPROCESS/fd/$video_a_regarder

$PLAYER /proc/$NPROCESS/fd/$FICHIER

Dernière modification par lylambda (Le 14/02/2011, à 13:24)

Hors ligne

#20 Le 14/02/2011, à 14:57

ottakar

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

Oué! Tu chaumes pas mec!

Je regarde ça ce soir...

Hors ligne

#21 Le 14/02/2011, à 20:04

ottakar

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

Ça ne semble pas fonctionner.
Si je lance le script avec un page youtube ou www.zapiks.fr, rien ne se passe.
Si je le lance tout seul il m'annonce qu'il ne trouve pas de vidéo.

Hors ligne

#22 Le 15/02/2011, à 15:45

lylambda

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

Étrange, j'ai essayé le script sur 3 postes différents et il fonctionne parfaitement.
Je ne vois que 2 points qui pourrait le bloquer :

- Le script n'est pas exécutable.
Ce n'est apparemment pas le cas chez toi, puisqu'il te dit lorsqu'il n'y a pas de vidéos. Au cas où, vérifie en cliquant droit sur sur le script, menu "Propriétés", onglet "Permissions" et coche la case d'Exécution si ce n'est pas fait (que pour le propriétaire si tu en as plusieurs).

- Il te manque des dépendances.
Pour que le script fonctionne en l'état, tu dois avoir grep, zenity, awk et vlc d'installés. Si tu ne veux pas installer Vlc, tu peux utiliser un autre lecteur capable de lire les vidéos flv (Totem, MPlayer, …) en remplaçant la commande "vlc" à la ligne 12 PLAYER="vlc" (sans majuscule). Pour les 3 autres, vérifie dans Synaptic.

Hors ligne

#23 Le 16/02/2011, à 00:20

ottakar

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

Autant pour moi...
Ça fonctionne, j'étais juste trop impatient: pour mes premiers essais vlc a mis plusieurs secondes pour s'ouvrir.

Merci!

Hors ligne

#24 Le 16/02/2011, à 18:34

spad35

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

Salut

Super ce script, bravo!

Et bien plus classe que d'aller attendre la vidéo dans /tmp comme un vieux vautour. Ça fait un couple parfait avec mplayer, simple et sobre.

Du coup je me suis dit: parfait pour Uzbl ça, puisque il ne fonctionne uniquement qu'avec des scripts externes. Malheureusement avec webkit pas de libflashplayer.so ni rien qui touche de près ou de loin à Flashplayer (en tout cas j'ai pas trouvé)
Il me semble pourtant que les navigateurs utilisant webkit ont besoin du plugin flash?

Si une bonne âme a une idée de la façon d'adapter le script...Et encore bravo d'avoir mis tout ça en forme

Hors ligne

#25 Le 16/02/2011, à 22:37

ottakar

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

Avec le player Arte ça ne fonctionne pas.

On retrouve bien un PID pour flash, mais dans /proc/[PID]/fd/ il n'ya pas de trace de fichier "Flashxxxxxxx (deleted)":

ottakar@depannox:/proc/2539/fd$ ls -hal
total 0
dr-x------ 2 ottakar ottakar  0 2011-02-16 20:54 .
dr-xr-xr-x 7 ottakar ottakar  0 2011-02-16 20:54 ..
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 0 -> /dev/null
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 1 -> /home/ottakar/.xsession-errors
l-wx------ 1 ottakar ottakar 64 2011-02-16 21:25 10 -> pipe:[16379]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 11 -> pipe:[16380]
l-wx------ 1 ottakar ottakar 64 2011-02-16 21:25 12 -> pipe:[16380]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 13 -> socket:[16383]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 14 -> /home/ottakar/.mozilla/firefox/ioupu3pt.default/cert8.db
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 15 -> /home/ottakar/.mozilla/firefox/ioupu3pt.default/key3.db
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 16 -> socket:[36399]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 17 -> pipe:[36405]
l-wx------ 1 ottakar ottakar 64 2011-02-16 21:25 18 -> pipe:[36405]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 19 -> pipe:[36406]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 2 -> /home/ottakar/.xsession-errors
l-wx------ 1 ottakar ottakar 64 2011-02-16 21:25 20 -> pipe:[36406]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 21 -> socket:[36411]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 3 -> socket:[16279]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 4 -> anon_inode:[eventpoll]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 42 -> socket:[16280]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 5 -> socket:[16376]
lrwx------ 1 ottakar ottakar 64 2011-02-16 21:25 6 -> socket:[16377]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 7 -> pipe:[16378]
l-wx------ 1 ottakar ottakar 64 2011-02-16 21:25 8 -> pipe:[16378]
lr-x------ 1 ottakar ottakar 64 2011-02-16 21:25 9 -> pipe:[16379]

Pas de traces non plus dans le repertoire /proc du PID de Firefox...

Dans le doute j'ai enlevé la prise réseau à 8:10, la vidéo bloque en pause à 8:14, je rebranche, j'enlève la pause et la lecture reprend à 00:00... Donc j'imagine que c'est du "vrai" streaming?

On pourrait pas rediriger la sortie standard vers un fichier?

Hors ligne

Haut de page ↑