Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Rip flashových videí z RAM na plochu  (Přečteno 5451 krát)

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Rip flashových videí z RAM na plochu
« kdy: 09 Května 2011, 20:22:09 »
Protože nové verze flash playeru neukládají videa do /tmp/FlashXXXXX a bashové scripty k nalezení na internetu mi nefungují, sbastlil jsem v C++ program, který to řeší pro více videí najednou (testováno na Firefoxu 4 a 5). :)

Kód: [Vybrat]
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
FILE* pipe=popen("pidof plugin-container","r");
char buff[6];
string pid="";//obsahuje PID procesu plugin-container
if(fgets(buff,6,pipe)!=NULL)
pid+=buff;
pclose(pipe);

//nacteni obsahu /proc/PID/fd/
FILE* pipe2=popen((char*)("cd /proc/"+pid+"/fd/ && ls -l").c_str(),"r");
char buff2[255];//buffer jednotlivych radek vypisu
string cislo="";//nazev pod kterym se video nachazi
string cislo_buf="";
int start=0;
int start_name=0;
while(fgets(buff2,255,pipe2)!=NULL)//prochazi vypis
{
start=0;
start_name=0;
cislo="";
cislo_buf="";
for(start=0;start<255;start++)
{
if(buff2[start]=='>')//zachytny bod
{
start_name=start+2;
start-=2;
while(buff2[start-1]!=' ')//ziskani nazvu souboru
{
start--;
cislo_buf=buff2[start];
cislo_buf+=cislo;
cislo=cislo_buf;
}
break;
}
}

if(buff2[start_name]=='/'&&buff2[start_name+1]=='t'&&buff2[start_name+2]=='m'&&buff2[start_name+3]=='p')
{
system(("cp /proc/"+pid+"/fd/"+cislo+" ~/Plocha/").c_str());
}
}
pclose(pipe2);

return 0;
}

Snad se to někomu bude hodit.
Omluvte prosím čistotu kódu, když někoho napadne zlepšení, budu rád  ;)

PS. Opraveny statické řetězce (jméno a skupina).
« Poslední změna: 09 Května 2011, 20:59:26 od sachy »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Rip flashových videí z RAM na plochu
« Odpověď #1 kdy: 09 Května 2011, 20:29:39 »
Ha, zásadní chyba, počkejte chvíli na patch (statická délka řetězce).
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #2 kdy: 09 Května 2011, 20:32:13 »

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Rip flashových videí z RAM na plochu
« Odpověď #3 kdy: 09 Května 2011, 20:58:04 »
http://forum.ubuntu.cz/index.php?topic=53994.0
Sem jsi se koukal?

Bohoušův script se zasekl u "grep bash" a nevypsal nic.
Daysleeperovo taky nešlo, jinak bych to použil :)

Oprava je na světě, už by to mělo šlapat všem :)

Kód: [Vybrat]
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
FILE* pipe=popen("pidof plugin-container","r");
char buff[6];
string pid="";//obsahuje PID procesu plugin-container
if(fgets(buff,6,pipe)!=NULL)
pid+=buff;
pclose(pipe);

//nacteni obsahu /proc/PID/fd/
FILE* pipe2=popen((char*)("cd /proc/"+pid+"/fd/ && ls -l").c_str(),"r");
char buff2[255];//buffer jednotlivych radek vypisu
string cislo="";//nazev pod kterym se video nachazi
string cislo_buf="";
int start=0;
int start_name=0;
while(fgets(buff2,255,pipe2)!=NULL)//prochazi vypis
{
start=0;
start_name=0;
cislo="";
cislo_buf="";
for(start=0;start<255;start++)
{
if(buff2[start]=='>')//zachytny bod
{
start_name=start+2;
start-=2;
while(buff2[start-1]!=' ')//ziskani nazvu souboru
{
start--;
cislo_buf=buff2[start];
cislo_buf+=cislo;
cislo=cislo_buf;
}
break;
}
}

if(buff2[start_name]=='/'&&buff2[start_name+1]=='t'&&buff2[start_name+2]=='m'&&buff2[start_name+3]=='p')
{
system(("cp /proc/"+pid+"/fd/"+cislo+" ~/Plocha/").c_str());
}
}
pclose(pipe2);

return 0;
}
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #4 kdy: 09 Května 2011, 21:47:04 »
Myslím, že Bohouš chtěl napsat původně 'Flash', místo 'bash' :)

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re: Rip flashových videí z RAM na plochu
« Odpověď #5 kdy: 09 Května 2011, 23:10:46 »
Diky, opraveno, to jsem si opravdu nevsiml  ;D
jsem to z toho virtualboxu blbe pretukal do fora
Tak dlouho se vrzá s Acerem, až se displej utrhne.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #6 kdy: 09 Května 2011, 23:55:05 »
Co funguje mně:

Opera 11.10 Maverick 64bit:
Kód: [Vybrat]
pushd `pwd`;cd /proc/`pidof operapluginwrapper-ia32-linux`/fd/; cp `ls -l|grep Flash|cut -d " " -f8` `xdg-user-dir DESKTOP`; popd
Firefox 4.0 Natty 32bit
Kód: [Vybrat]
pushd `pwd`;cd /proc/`pidof plugin-container`/fd/; cp `ls -l|grep Flash|cut -d " " -f8` `xdg-user-dir DESKTOP`; popd
Firefox 4.0.1 Maverick 64bit
Kód: [Vybrat]
pushd `pwd`;cd /proc/`pidof npviewer.bin`/fd/; cp `ls -l|grep Flash|cut -d " " -f8` `xdg-user-dir DESKTOP`; popd
Všechno Flash Player 10,2,159,1
« Poslední změna: 10 Května 2011, 12:18:49 od GdH »

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Rip flashových videí z RAM na plochu
« Odpověď #7 kdy: 10 Května 2011, 11:27:05 »
Firefox 4.0 Natty
Kód: [Vybrat]
pushd `pwd`;cd /proc/`pidof plugin-container`/fd/; cp `ls -l|grep Flash|cut -d " " -f8` `xdg-user-dir DESKTOP`; popdVšechno Flash Player 10,2,159,1

Konečně něco co funguje:) Takže potvrzuji funkčnost i pro FF5a v Lucidu.
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #8 kdy: 10 Května 2011, 17:24:11 »
Napsal jsem ještě univerzální příkaz pro všechny prohlížeče, který kopíruje videa na Plochu. Předpokladem pro funkčnost je to, že nemáte těch prohlížečů (obecně aplikací využívajících libflashplugin.so) spuštěno více, to by se muselo dále ošetřit.

Kód: [Vybrat]
pushd `pwd`; cd /proc/`ps ax|grep libflashplayer.so|grep -v grep|awk '{print $1}'`/fd; cp `ls -l|grep Flash| awk '{print $8}'` `xdg-user-dir DESKTOP`; popd
pushd/popd je tam jen kvůli tomu, abyste se po provedení příkazu vrátili do původního adresáře.

samot65

Re: Rip flashových videí z RAM na plochu
« Odpověď #9 kdy: 12 Května 2011, 16:25:05 »
Asi něco dělám špatně:

Kód: [Vybrat]
bash: cd: /proc//fd/: Adresář nebo soubor neexistuje
cp: za „/home/stehno/Plocha“ chybí název cílového souboru
Více informací získáte příkazem „cp --help“.

co?

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #10 kdy: 12 Května 2011, 16:40:40 »
Asi něco dělám špatně:

Kód: [Vybrat]
bash: cd: /proc//fd/: Adresář nebo soubor neexistuje
cp: za „/home/stehno/Plocha“ chybí název cílového souboru
Více informací získáte příkazem „cp --help“.

co?

Máš-li spuštěno více aplikací, které používají ten flajš plugin, tak se tohle stane. Zjistíš jednoduše:
Kód: [Vybrat]
ps ax|grep libflashplayer.so
Pokud to chceš trochu pochopit, můžeš kouknout sem.

samot65

Re: Rip flashových videí z RAM na plochu
« Odpověď #11 kdy: 12 Května 2011, 17:24:27 »
Funguje to v FF a v Chromiu v Chromu ne

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #12 kdy: 12 Května 2011, 17:39:39 »
Funguje to v FF a v Chromiu v Chromu ne

Jo, už je mi to jasné. Je to tím, že Chromium spouští pro každý tab nový proces a pokud máš otevřeno více tabů s flajšem, je to špatně. Až budu mít čas napíšu skript, který je obslouží všechny.

samot65

Re: Rip flashových videí z RAM na plochu
« Odpověď #13 kdy: 12 Května 2011, 17:45:49 »
Já to původně zkoušel v Chromu, ale ten mi nevypsal nic.
Díky za odkaz a radu.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Rip flashových videí z RAM na plochu
« Odpověď #14 kdy: 12 Května 2011, 20:53:05 »
Tak ani ten Chromajzlík nespouští víc flajšových pluginů, takže ten můj původní příkaz musí fungovat pokud není spuštěn ještě jiný prohlížeč. Nicméně tady je úprava, která vytahá flajše na Plochu ze všeho, co zrovna operuje:

Kód: [Vybrat]
pushd `pwd`;ps ax|grep libflashplayer.so|grep -v grep|awk '{print $1}'|while read pid;do cd /proc/$pid/fd;ls -l |grep Flash| awk '{print $8}'|while read file;do cp $file "`xdg-user-dir DESKTOP`/$pid$file";done;done;popd
« Poslední změna: 12 Května 2011, 22:28:03 od GdH »

jAster_BA

  • Závislák
  • ***
  • Příspěvků: 4165
  • FEI STU stole my soul, don't have time anymore :/
Re: Rip flashových videí z RAM na plochu
« Odpověď #15 kdy: 12 Května 2011, 21:09:42 »
Tak ani ten Chromajzlík nespouští víc flajšových pluginů, takže ten můj původní příkaz musí fungovat pokud není spuštěn ještě jiný prohlížeč. Nicméně tady je úprava, která vytahá flajše na Plochu ze všeho, co zrovna operuje:

Kód: [Vybrat]
pushd `pwd`;ps ax|grep libflashplayer.so|grep -v grep|awk '{print $1}'|while read line;do cd /proc/$line/fd;ls -l |grep Flash| awk '{print $8}'|while read file;do cp $file `xdg-user-dir DESKTOP`;done;done;popd
Respect K+
Mám doma všelijaké staré haraburdy ale najviac ma *censored*tie novšie s grafikou ATI/AMD... registered as user #520570

Linuxové počítadlo Automatická kompilácia jadra

duso4

  • Návštěvník
  • Příspěvků: 4
problemi z wifi na netbuku asus eee 1001px
« Odpověď #16 kdy: 12 Května 2011, 21:23:18 »
od prechodu z 10.10 na 11.4 pri pokuse sa pripojit na net cez wifi zamrza pc co s tym ???

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: problemi z wifi na netbuku asus eee 1001px
« Odpověď #17 kdy: 12 Května 2011, 22:21:32 »
od prechodu z 10.10 na 11.4 pri pokuse sa pripojit na net cez wifi zamrza pc co s tym ???

Promiň, ale v tomto vlákně wifi neřešíme a řešit nebudem ;)

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: Rip flashových videí z RAM na plochu
« Odpověď #18 kdy: 13 Května 2011, 01:02:27 »
To bude tim ze se po pouziti vyse uvedenych skriptu ukladaji pakety na plochu  ;D
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

Milhouse

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5726
Re:Rip flashových videí z RAM na plochu
« Odpověď #19 kdy: 13 Října 2012, 16:08:13 »
Čus. Funguje tohle ještě někomu? Mě nějak neeee. :/

N. Á. V. O. D. Y.
 "...naše práce není vidět, ale je důležitá!"

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Rip flashových videí z RAM na plochu
« Odpověď #20 kdy: 14 Října 2012, 00:18:47 »
Čus. Funguje tohle ještě někomu? Mě nějak neeee. :/

Bohužel už dávno ne, ani jsem nezkoumal, jestli to má ještě rozumné řešení..

Milhouse

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5726
Re:Rip flashových videí z RAM na plochu
« Odpověď #21 kdy: 14 Října 2012, 09:04:26 »
No, ale docela by se mi to hodilo. :) Je blbý, když nakešované video nemůžeš uložit. A znova to stahovat nějakým pluginem stojí za houby. Nechceš to ještě zkouknout? ;)

N. Á. V. O. D. Y.
 "...naše práce není vidět, ale je důležitá!"

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:Rip flashových videí z RAM na plochu
« Odpověď #22 kdy: 15 Října 2012, 10:21:29 »
U gnashe si muzes nastavit, kam ti ty videa bude ukladat do cache. Bohuzel si ale nepustis flash jinde nez na youtube...
Tak dlouho se vrzá s Acerem, až se displej utrhne.

Milhouse

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5726
Re:Rip flashových videí z RAM na plochu
« Odpověď #23 kdy: 15 Října 2012, 11:37:42 »
Hmm, to je docela blbé. :)

N. Á. V. O. D. Y.
 "...naše práce není vidět, ale je důležitá!"

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Rip flashových videí z RAM na plochu
« Odpověď #24 kdy: 30 Března 2013, 14:06:56 »
Takže to rozumné řešení má, dnes mi to nedalo:
Jak si zkopírovat flash videa z cache dnes

 

Provoz zaštiťuje spolek OpenAlt.