Comment accéder aux fichiers Flash à partir de sites Web en streaming?

30

Dans Maverick, il y avait une option pour télécharger des vidéos Flash à partir de sites comme YouTube, Vimeo, etc. en copiant le flashxx**fichier dans le /tmprépertoire vers un autre emplacement avant de fermer la fenêtre. Mais dans Firefox 4 dans Natty, cela ne fonctionne plus. Pourquoi?

avi
la source
Si vous souhaitez simplement télécharger des vidéos, je recommanderais Clipgrab: clipgrab.de/en . Ils ont un PPA: launchpad.net/~clipgrab-team
Martin Thoma

Réponses:

26

Une mise à jour du plugin flash a changé l'emplacement du /tmprépertoire de cache Firefox (par exemple ~/.mozilla/firefox/bq95m4w1.default/Cache). Malheureusement, le fichier flash mis en cache n'est pas aussi facile à trouver qu'auparavant, mais c'est possible.

La commande suivante répertorie tous les fichiers flash dans votre cache Firefox.

find ~/.mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash

Sur les versions plus récentes d'ubuntu, essayez

find ~/.cache/mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash
Woozy
la source
1
Pourquoi ne pas file ~/.mozilla/firefox/*.default/Cache/* | grep Flash? Le répertoire cache ne semble pas avoir de sous-répertoires, ce qui pourrait justifier l'utilisation de find.
enzotib
ne fonctionne pas. probablement travaillé avant.
dumb906
Le fichier FLV est toujours dans / tmp, cependant vous avez besoin d'une astuce spéciale pour y accéder.
user4124
Voir ma réponse ci-dessous qui parle de récupérer le fichier FLV en utilisant le système de fichiers / proc. Néanmoins, vous pouvez utiliser l'un des modules complémentaires de Firefox pour effectuer la même tâche.
user4124
28

Vous pouvez utiliser plusieurs modules complémentaires de Firefox afin d'extraire les fichiers FLV de nombreux sites Web tels que Youtube.

Je montrerai ci-dessous comment faire MANUELLEMENT avec la dernière version du plugin Flash.

  1. Visitez la vidéo YouTube et attendez qu'elle soit entièrement téléchargée.
  2. Ensuite, exécutez à partir de la ligne de commande la commande

    $ lsof -n | grep Flash

    qui montre les fichiers (même les fichiers mémoire !), et filtre ceux qui ont Flashen leur nom.

  3. Vous obtenez quelque chose comme

    plugin-co 2461 user 17u REG 8,5 1693301 524370 /tmp/FlashXXVkHEM6 (deleted).

    Maintenant, il y en a un /tmp/FlashXXVkHEM6mais il a été supprimé.

  4. Sous Linux, si un fichier est supprimé, il ne disparaît réellement que lorsque tous les programmes qui l'ont ouvert précédemment sont fermés. Autrement dit, le plugin Flash utilise une astuce pour masquer le fichier / tmp / FlashXXVkHEM6. Il le crée et immédiatement deletes. Mais puisque le plugin Flash continue de fonctionner, il peut apparemment toujours l'utiliser.

  5. Sur la ligne ci-dessus, nous notons le numéro 2461, qui est l'ID du processus. Dans votre cas, ce sera probablement différent. Ensuite, exécutez

    $ cd /proc/2461/fd

    et enfin exécuter

    $ ls -l

    Cela vous montrera les fichiers mémoire, et en particulier

    lrwx------ 1 user user 64 2011-09-16 10:23 17 -> /tmp/FlashXXVkHEM6 (deleted)

    Le nombre «17» (dans mon cas) est le nom de fichier que vous pouvez utiliser pour accéder à la suppression /tmp/FlashXXVkHEM6 . Par conséquent, exécutez simplement

    $ cp 17 /tmp/myyoutubevideo.flv

    et vous restaurez la vidéo Youtube!

C'est ça! Vous avez récupéré manuellement la vidéo Youtube!

user4124
la source
7

Si vous accédez à votre dossier / proc, vous verrez un tas de dossiers tous nommés numériquement, y compris un dossier qui correspond au numéro dans le deuxième champ.

Naviguez maintenant vers ce dossier, puis son sous-dossier «fd». Dans ce dossier, vous verrez toute une sélection de numéros. Ceux-ci concernent les descripteurs de fichiers eux-mêmes.

Exécutez ls -ldans ce dossier et vous verrez que chacun de ces numéros est lié à des canaux, des sockets ou des fichiers.

Dans ce cadre, le numéro du quatrième champ sera symboliquement lié au fichier / tmp / Flash * que nous avons trouvé auparavant.

Pour tester qu'il s'agit du bon fichier, vous pouvez l'exécuter via mplayer ou vlc ( mplayer filedescriptornumber/ vlc filedescriptornumber). Si vous ne parvenez pas à trouver le nom de fichier, essayez ls -l | grep Flash.

Pour un moyen simple, essayez cette commande dans la console:

stat -c %N /proc/*/fd/* 2>&1|awk -F[\`\'] '/Flash/{print$2}'

La sortie sera quelque chose comme ceci:

/proc/4691/fd/17
/proc/4691/fd/18

Cela répertoriera tous vos flux flash téléchargés. Pour cet exemple, il y a 2 vidéos flash de mon navigateur Firefox 4. Si vous souhaitez le copier, utilisez simplement cette commande:

cp /proc/4691/fd/17 ~/Videos/Flash/sample.flv

Source: http://n00bsys0p.wordpress.com/2011/02/10/how-to-download-flash-10-2-video-streams-in-linux/

squallbayu
la source
5

Ce petit script enregistrerait vos fichiers flash téléchargés dans un répertoire personnalisé.

  1. créer le répertoire où vous souhaitez enregistrer les fichiers, par exemple ~ / Videos / flvs

    mkdir ~/Videos/flvs
    
  2. ouvrez gedit et copiez et collez ce script.

    #!/bin/bash
    # flvcache script
    
    CACHE=~/.mozilla/firefox/*.default/Cache
    OUTPUTDIR=~/Videos/flvs
    MINFILESIZE=2M
    
    for f in `find $CACHE -size +$MINFILESIZE`
    do
        cp "$f" "$OUTPUTDIR/$o"
    done
    
    nautilus  "$OUTPUTDIR"&
    
  3. enregistrez le fichier sous saveflashall.sh, puis ajoutez des autorisations exécutables au fichier

    chmod +x saveflashall.sh
    
  4. puis lancez-le.

    ./saveflashall.sh
    

il ouvrirait alors les fichiers dans le premier dossier créé ci-dessus. Personnalisé pour inclure tous les fichiers (fonctionnant pour mpeg et mp4) au lieu de seulement flvs.

Les crédits vont à http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html

dumb906
la source
J'ai essayé ceci ... certaines vidéos que j'ai regardées depuis longtemps sont maintenant dans ce dossier mais celles que j'ai regardées en ce moment ne le sont pas. Pourquoi?
avi
4

Pour autant que je sache, ce n'est pas dû à Firefox ni à Natty, mais à une mise à jour flash ...

Vous pouvez attraper le flux http avec wiresharkou utiliser un outil comme youtube-dlpour obtenir le fichier vidéo.

Mais rappelez-vous que ce n'est peut-être pas légal, alors vérifiez votre législation locale ...

LassePoulsen
la source
Une astuce intéressante avec le wirehark, mais je suppose que cela peut être fatigant, car les vidéos sont assez grandes (plus de 10 Mo), tandis que les packages contiennent une petite partie de ces données :)
Rafał Cieślak
3

Vous devez utiliser flashgot pour télécharger les vidéos.

RolandiXor
la source
3

Ubuntu 12.04 (Precise) - Instructions pour Firefox 11 Une version modifiée du script bash de chlumma1.

Avec un éditeur de texte, enregistrez le code ci-dessous dans un fichier nommé "getvids.sh". Déplacez-le à l'emplacement où vous souhaitez enregistrer les vidéos. Faites un clic droit sur le fichier, allez dans Propriétés, Modifiez les autorisations en "Autoriser l'exécution en tant que programme".

Tout ce que vous avez à faire est de cliquer sur le script, sélectionnez "Exécuter dans le terminal", et il enregistrera tous les fichiers vidéo dans ce répertoire. Pour enregistrer l'intégralité de la vidéo, son chargement doit être terminé dans votre navigateur. Il enregistrera des vidéos de presque tous les sites Web, y compris youtube, vimeo, dailymotion, metacafe, liveleak, facebook . Supprimez simplement les fichiers vidéo dont vous ne voulez pas.

(Si une vidéo que vous voulez n'est pas enregistrée, le site Web utilise probablement un format de flux propriétaire qui ne peut être enregistré par aucun programme de récupération de cache. Exemples: Hulu, netflix, certaines vidéos youtube?) De plus, le lecteur VLC est un idéal pour regarder des vidéos flash.

#!/usr/bin/env bash
# getvids.sh [save_folder]

SAVE_FOLDER="$HOME" # User editable

# If the below option is used, then this script should be run in a terminal.
#CPMOD="-i" # Uncomment to prevent file overwrites

PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]; then
  echo ERROR: Flashplayer not running
  exit 1
fi

if [ ! -z $1 ]; then
  echo "Setting save location: $1"
  SAVE_FOLDER="$1"
fi

if [ ! -d "$SAVE_FOLDER" ]; then
  echo "Save location doesn't exist: $SAVE_FOLDER"
  exit 1
fi

for PID in $ALL_PID; do
  declare -a OUTFILES=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'))
  declare -a FDS=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | awk '{ print $9 }' ))
  for ((i=0; i<${#FDS[@]}; i++)); do
    saveas="$SAVE_FOLDER/${OUTFILES[i]}.flv"
    echo "Copying video ${FDS[i]} to $saveas"
    cp $CPMOD "/proc/$PID/fd/${FDS[i]}" "$saveas"
  done
done

Ceux qui connaissent un peu le terminal peuvent éditer les deux premières variables et obtenir un peu de fonctionnalités supplémentaires. Alternativement, pour visualiser les fichiers en direct, vous pouvez taper ceci dans un terminal pour savoir où ils se trouventfor i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done

PS Aussi, excellent travail chlumma1, mais mettez un peu de côté les boucles de style de programmation C;)

Sepero
la source
2

Les versions récentes du plugin flash masquent le fichier temporaire en le marquant comme supprimé. Pratiquement le flux vidéo est téléchargé dans un "fichier supprimé". Cependant, même lorsqu'un fichier est supprimé, si le fichier est ouvert par un processus, vous pouvez trouver son descripteur de fichier et, par conséquent, son contenu.

Ce script simple imprime les descripteurs de fichiers des vidéos Flash ouvertes:

file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d:

Et, vous souhaiterez probablement créer un fichier normal à partir du descripteur de fichier, par exemple:

cp $(file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d: | head -n 1) video.avi

Sinon, le descripteur de fichier n'est pas très pratique (rappelez-vous, c'est un fichier supprimé!)

La méthode devrait fonctionner quel que soit votre navigateur.

Arrêtez le mal en cours à Monica
la source
1

Hé, ce problème existait déjà en 10.10. Donc, pour le résoudre, essayez ceci:

None of the methods described by previous posters are as convenient as just copying the flash file from the tmp directory.

Therefore, what I did was downgrade my Flash to 10.1.102.64

The download link for older versions of flash is http://kb2.adobe.com/cps/142/tn_14266.html

Download the (large) file named "Flash Player 10.1.102.64 and 9.0.289.0".
After downloading, extract the file named flashplayer10_1r102_64_linux.tar.gz

From this file extract libflashplayer.so and overwrite the file at /usr/lib/flashplugin-installer (you will need root privileges, try gksudo nautilus)

Restart Firefox and your flash videos will land up in the /tmp directory as before! This won't work for Google Chrome, it will continue to use the latest version of Flash.

Note: For the above steps to work, a version of Adobe Flash should have been previously installed.

[cité sur ce site: publié par chetancrasta Voir le message ]

J'espère que cela t'aidera. Faites-moi savoir si cela fonctionnera.

Vito
la source
Je pense que vous avez mal compris la question. L'affiche originale a déjà Flash Player installé et fonctionne. Il se demande simplement où Flash stocke ses fichiers temporaires.
Jeremy Bicha
Ouais. Droite. Mais je pense qu'il se demande où les fichiers flash ont disparu. Avec la nouvelle version d'Adobe Flash Player, ils sont stockés comme @Woozy déjà mentionné. @Woozy a également mentionné que le "fichier flash mis en cache n'est pas aussi facile à trouver qu'auparavant". Donc, si vous voulez que le fichier flash soit à nouveau "facile", vous pouvez rétrograder votre lecteur flash. Par conséquent, les fichiers flash seront à nouveau stockés dans / tmp ... J'espère que vous comprenez mon point maintenant!? Ou ai-je tort ?
Vito
1

Pour une méthode généralement applicable qui fonctionne avec Chrome ou Firefox, essayez ce petit programme appelé flashcache . Il copie les vidéos flash en cours de lecture dans le répertoire actuel.

Mon patch ajoute l'option -pqui permet au script de lire les vidéos en utilisant mplayerau lieu de faire des copies des fichiers.

Loevborg
la source
1

Bien que ne répondant pas directement à la question, je suis tombé sur le même problème et après quelques recherches, j'ai trouvé Clipgrab qui est beaucoup plus facile à utiliser.

Cas
la source
1

Vous pouvez essayer cette commande dans un terminal

cp \`file /proc/\*/fd/* | grep tmp/Flash | awk -F":" '{print$1}'` dirname/
Susman
la source
1

suivez ce lien ( ~/.mozilla/firefox/ewzggcll.default/Cache)

Sauf si je suis vraiment confus (ne le pensez pas), ce "ewzggcll" ne sera pas dans votre machine. Ce que vous trouverez est une collection aléatoire de lettres (et éventuellement de chiffres?) Qui est très probablement unique à votre installation Linux et Firefox. Néanmoins, cette collection aléatoire d'aspect étrange est importante, car elle est essentielle pour accéder au cache [s].

J'espère que cela t'aides! (HTH)

jayfro
la source
1

J'utilise SMplayer YouTube. Il est fourni avec Smplayer que vous installez dans le centre de logiciels Ubuntu. Il enregistre des vidéos YouTube. très simple et facile à utiliser.

user297921
la source
Je peux confirmer que cela fonctionne. Ubuntu 14.04. Je n'arrive pas à croire que j'ai perdu mon temps à essayer toutes les réponses ici et partout ailleurs sur Internet sans succès jusqu'à ce que j'y arrive ... dans le format et la taille de mon choix ...: D
PFROLIM
1

J'utilise minitube, un client youtube qui stocke les fichiers flash sur/tmp

user20043
la source
1

Ce script fera cela:

#!/bin/bash
PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]
then
echo ERROR: Flashplayer not runnig
exit 1
 fi


 for PID in $ALL_PID
 do

OUTFILES=`ls -lt1 /proc/$PID/fd | grep '/tmp' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'`
INFD=`ls -lt1 /proc/$PID/fd | grep '/tmp' | cut -f 9 -d \ `


# nazev souboru do pole
i=0;
for out in $OUTFILES
do
    i=`expr $i + 1`
    NAMEFILE[$i]=$out

done

# nazev file desktiptoru do pole
i=0;
for out in $INFD
do
    i=`expr $i + 1`
    NAMEFD[$i]=$out
done



# ulozeni video dat
i=0;
for outfd in $OUTFILES
do
    i=`expr $i + 1`
    #echo ${NAMEFILE[$i]} ${NAMEFD[$i]}

    cat /proc/$PID/fd/${NAMEFD[$i]} > ${NAMEFILE[$i]}.flv
done

done
chlumma1
la source
0

Mozilla semble changer l'emplacement trop fréquemment. De plus, le nom du tampon n'est pas le même que celui de la vidéo, il est donc également difficile de trouver celui qui est correct dans le tas. L'enregistrement du fichier mis en cache n'est donc pas une solution cohérente. Si l'installation d'un programme de bureau est correcte, ClipGrab est le meilleur outil disponible. Vous pouvez

  1. Recherchez des vidéos.
  2. Sélectionnez la qualité de la vidéo YouTube à télécharger.
  3. Sélectionnez le format de la vidéo à télécharger.
  4. Vous pouvez simplement donner une URL de vidéo youtube et il téléchargera le fichier.

ClipGrab pour télécharger des vidéos YouTube dans Ubuntu .

arunskrish
la source
0

Vous pouvez également utiliser keepvid.com pour de nombreux sites de streaming vidéo. Cela nécessite cependant que java soit sur vos machines. Une fois installé, collez simplement le lien URL et enregistrez-le dans une variété de formats, y compris mp4 ou WebM

mattibuntu
la source
0

la méthode la plus simple consiste à utiliser l'addon "CacheViewer Continued 0.8" pour Firefox

après l'installation, appuyez sur ctrl + shift + c pour ouvrir, puis appuyez sur afficher tout, là après vous pouvez rechercher un cache particulier comme jpeg, flv n'importe quoi ...... un clic gauche sur l'élément vous donnera la possibilité de sauvegarder, de sauvegarder en donnant l'extension requise comme .flv pour la vidéo flash et .jpeg pour jpeg et vice versa entrez la description de l'image ici

lien pour l'addon https://addons.mozilla.org/en-US/firefox/addon/cacheviewer-continued/?src=api

gunjan parashar
la source