Un tempo su Linux si poteva trovare un video guardato in streaming direttamente nella directory /tmp
.
In seguito, con degli aggiornamenti, flash scaricava il video sempre lì, ma veniva eliminato, anche se fisicamente presente.
Per ritrovarlo bastava trovare il processo dell’implementazione flash del browser, solitamente con ps aux | grep flash
e così si trovavano i possibili pid.
Andando a vedere nella directory /proc/pid/fd
, si trovavano tanti link, uno di questi a un file tipo /tmp/Flash...
. In seguito si poteva trattare quel link come se fosse un file normale, quindi riprodurlo, passarlo a mencoder o ffmpeg etc… Se volevate copiarlo dovevate aspettare che il browser avesse finito di scaricare il video!
In seguito sembrava essere scomparsa anche questa possibilità, ma oggi mi sono accorto che è tornata, quindi vi lascio un breve file in python che permette di trovare automaticamente i vari file:
#!/usr/bin/env python
import os
for pid in os.listdir('/proc'):
if not pid.isdigit():
continue
fdpath = '/proc/' + str(pid) + '/fd'
try:
fd = os.listdir(fdpath)
except:
continue
for fid in fd:
try:
# Not a link? Raise exception
fname = os.readlink(fdpath + '/' + fid)
fname = fname.strip()
if fname.lower().find('/tmp/flash') == 0:
fname = fname.split(' ')[0]
print fdpath + '/' + fid + ' => ' + fname
except:
continue
Questo script è stato scritto molto velocemente: cerca di andare in tutti i pid e di trovare i vari link. Se contengono la parola flash stampa il link e la destinazione. So che si potrebbe fare una cosa migliore ma in questo caso preferisco fare lo script kid 😊 .
Lo rilascio nel pubblico dominio.
Comunque se volete scaricare video da siti come youtube ed altri, vi consiglio di non adottare questo metodo ma di usare direttamente youtube-dl, che è fantastico!