ฉันจะเข้าถึงไฟล์ Flash จากเว็บไซต์สตรีมมิ่งได้อย่างไร


30

ในไม่ฝักใฝ่ฝ่ายใดมีตัวเลือกในการดาวน์โหลดวิดีโอแฟลชจากเว็บไซต์เช่น YouTube, Vimeo ฯลฯ โดยการคัดลอกflashxx**ไฟล์ใน/tmpไดเรกทอรีไปยังตำแหน่งอื่นก่อนที่จะปิดหน้าต่าง แต่ใน Firefox 4 ใน Natty สิ่งนี้ไม่ทำงานอีกต่อไป ทำไม?


หากคุณเพียงแค่ต้องการที่จะดาวน์โหลดวิดีโอผมอยากแนะนำให้ Clipgrab: clipgrab.de/en พวกเขามี PPA: launchpad.net/~clipgrab-team
Martin Thoma

คำตอบ:


26

การอัพเดตปลั๊กอินแฟลชเปลี่ยนตำแหน่งจาก/tmpไปเป็นไดเรกทอรีแคชของ Firefox (เช่น~/.mozilla/firefox/bq95m4w1.default/Cache) น่าเสียดายที่ไฟล์แฟลชที่เก็บไว้ไม่สามารถหาได้ง่ายเหมือน แต่ก่อน แต่เป็นไปได้

คำสั่งต่อไปนี้แสดงรายการไฟล์แฟลชทั้งหมดในแคช Firefox ของคุณ

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

ลองอูบุนตูเวอร์ชันใหม่กว่า

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

1
ทำไมไม่file ~/.mozilla/firefox/*.default/Cache/* | grep Flash? ดูเหมือนว่าไดเรกทอรีแคชนั้นจะไม่มีไดเรกทอรีย่อยซึ่งสามารถปรับการใช้งานfindได้
enzotib

ไม่ทำงาน อาจเคยทำงานมาก่อน
dumb906

ไฟล์ FLV ยังคงอยู่ใน / tmp แต่คุณต้องมีเคล็ดลับพิเศษในการเข้าถึง
user4124

ดูคำตอบของฉันด้านล่างซึ่งพูดถึงเกี่ยวกับการกู้คืนไฟล์ FLV โดยใช้ระบบไฟล์ / proc ถึงกระนั้นคุณสามารถใช้หนึ่งใน addons Firefox เพื่อทำงานเดียวกัน
user4124

28

คุณสามารถใช้ส่วนเสริมของ Firefox เพื่อแยกไฟล์ FLV จากเว็บไซต์ต่าง ๆ เช่น Youtube

ฉันจะแสดงวิธีทำด้วยตนเองด้วยปลั๊กอินแฟลชเวอร์ชันล่าสุดด้านล่าง

  1. เยี่ยมชมวิดีโอ YouTube และรอให้ดาวน์โหลดอย่างสมบูรณ์
  2. จากนั้นเรียกใช้คำสั่งจากบรรทัดคำสั่ง

    $ lsof -n | grep Flash

    ซึ่งแสดงไฟล์ (แม้ไฟล์หน่วยความจำ !) และตัวกรองไปยังไฟล์ที่มีFlashชื่ออยู่

  3. คุณได้รับสิ่งที่ชอบ

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

    ตอนนี้มี/tmp/FlashXXVkHEM6แต่มันถูกลบไปแล้ว

  4. ใน Linux หากไฟล์ถูกลบจริง ๆ แล้วมันจะหายไปเมื่อทุกโปรแกรมที่เปิดก่อนหน้านี้ถูกปิด นั่นคือปลั๊กอินแฟลชกำลังใช้เคล็ดลับเพื่อซ่อนไฟล์ / tmp / FlashXXVkHEM6 มันจะสร้างมันและทันทีที่deletesมัน แต่เนื่องจากปลั๊กอิน Flash ยังคงทำงานอยู่จึงยังคงสามารถใช้งานได้

  5. จากบรรทัดด้านบนเราบันทึกหมายเลข2461ซึ่งเป็นรหัสกระบวนการ ในกรณีของคุณมันอาจจะแตกต่างกัน จากนั้นเรียกใช้

    $ cd /proc/2461/fd

    และในที่สุดก็ดำเนินการ

    $ ls -l

    นี่จะแสดงไฟล์หน่วยความจำและโดยเฉพาะ

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

    จำนวน '17' (ในกรณีของฉัน) เป็นชื่อไฟล์ที่คุณสามารถใช้เพื่อเข้าถึงลบ /tmp/FlashXXVkHEM6ดังนั้นเพียงแค่เรียกใช้

    $ cp 17 /tmp/myyoutubevideo.flv

    และคุณกู้คืนวิดีโอ Youtube!

แค่นั้นแหละ! คุณกู้คืนวิดีโอ Youtube ด้วยตนเอง!


7

หากคุณนำทางไปยังโฟลเดอร์ / proc ของคุณคุณจะเห็นกลุ่มของชื่อทั้งหมดเป็นตัวเลขรวมถึงโฟลเดอร์ที่ตรงกับหมายเลขในฟิลด์ที่สอง

ตอนนี้นำทางไปยังโฟลเดอร์นี้จากนั้นโฟลเดอร์ย่อย“ fd” ในโฟลเดอร์นี้คุณจะเห็นตัวเลขทั้งหมด สิ่งเหล่านี้เกี่ยวข้องกับไฟล์อธิบายด้วยตนเอง

เรียกใช้ls -lในโฟลเดอร์นี้และคุณจะเห็นว่าแต่ละหมายเลขเหล่านี้เชื่อมโยงกับไพพ์ซ็อกเก็ตหรือไฟล์

ภายในนี้จำนวนจากฟิลด์ที่สี่จะถูกเชื่อมโยงสัญลักษณ์กับไฟล์ / tmp / Flash * ที่เราพบมาก่อน

เพื่อทดสอบว่านี่เป็นไฟล์ที่ถูกต้องคุณสามารถเรียกใช้ผ่าน mplayer หรือ vlc ( mplayer filedescriptornumber/ vlc filedescriptornumber) ls -l | grep Flashหากคุณกำลังมีปัญหาในการหาชื่อไฟล์ให้ลอง

สำหรับวิธีที่ง่ายลองคำสั่งนี้ในคอนโซล:

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

ผลลัพธ์จะเป็นดังนี้:

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

ซึ่งจะแสดงรายการรายการแฟลชสตรีมที่คุณดาวน์โหลดทั้งหมด ตัวอย่างเช่นมี 2 วิดีโอแฟลชจากเบราว์เซอร์ firefox 4 ของฉัน หากคุณต้องการคัดลอกเพียงใช้คำสั่งนี้:

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

ที่มา: http://n00bsys0p.wordpress.com/2011/02/10/how-to-download-flash-10-2-video-streams-in-linux/


5

สคริปต์นี้จะบันทึกไฟล์แฟลชที่คุณดาวน์โหลดไปยังไดเรกทอรีที่กำหนดเอง

  1. ทำไดเรกทอรีที่คุณต้องการบันทึกไฟล์เช่น ~ / Videos / flvs

    mkdir ~/Videos/flvs
    
  2. เปิด gedit แล้วคัดลอกและวางสคริปต์นี้

    #!/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. บันทึกไฟล์เป็น saveflashall.sh จากนั้นเพิ่มสิทธิ์อนุญาตให้เรียกใช้ลงในไฟล์

    chmod +x saveflashall.sh
    
  4. จากนั้นเรียกใช้

    ./saveflashall.sh
    

จากนั้นจะเปิดไฟล์ในโฟลเดอร์แรกที่สร้างขึ้นด้านบน ปรับแต่งเพื่อรวมไฟล์ทั้งหมด (ใช้งานได้กับ mpeg และ mp4) แทนไฟล์ flvs เท่านั้น

เครดิตไปที่http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html


ฉันลองทำนี่.. วิดีโอที่ฉันได้ดูมานานแล้วตอนนี้อยู่ในโฟลเดอร์นี้ แต่วิดีโอที่ฉันดูตอนนี้ไม่ใช่ ทำไม?
avi

4

เท่าที่ฉันรู้ว่าสิ่งนี้ไม่ได้เกิดจาก firefox หรือ natty แต่เป็นการอัปเดตแฟลช ...

คุณสามารถจับกระแส HTTP ด้วยwiresharkหรือใช้เครื่องมือที่ต้องการyoutube-dlรับไฟล์ภาพยนตร์

แต่โปรดจำไว้ว่าอาจไม่ถูกกฎหมายดังนั้นให้ตรวจสอบกฎหมายท้องถิ่นของคุณ ...


เคล็ดลับเรียบร้อยกับ wireshark แต่ฉันเดาว่านี่อาจจะเหนื่อยเพราะวิดีโอมีขนาดค่อนข้างใหญ่ (มากกว่า 10MB) ในขณะที่แพ็คเกจมาพร้อมกับข้อมูลชิ้นเล็ก ๆ :)
RafałCieślak


3

Ubuntu 12.04 (แม่นยำ) - คำแนะนำ Firefox 11 สคริปต์ทุบตีของ chlumma1 เวอร์ชันดัดแปลง

ด้วยโปรแกรมแก้ไขข้อความให้บันทึกรหัสด้านล่างลงในไฟล์ชื่อ "getvids.sh" ย้ายไปยังตำแหน่งที่คุณต้องการบันทึกวิดีโอ คลิกขวาที่ไฟล์ไปที่คุณสมบัติเปลี่ยนสิทธิ์เป็น "อนุญาตให้ดำเนินการเป็นโปรแกรม"

สิ่งที่คุณต้องทำคือคลิกที่สคริปต์เลือก "Run in Terminal" และมันจะบันทึกไฟล์วิดีโอทั้งหมดไปยังไดเรกทอรีนั้น ในการบันทึกวิดีโอทั้งหมดจะต้องโหลดเสร็จในเบราว์เซอร์ของคุณ มันจะบันทึกวิดีโอจากเกือบเว็บไซต์ใด ๆ รวมทั้งYouTube, Vimeo, Dailymotion, Metacafe, liveleak, Facebook เพียงลบไฟล์วิดีโอที่คุณไม่ต้องการ

(หากวิดีโอที่คุณต้องการไม่ได้รับการบันทึกแสดงว่าเว็บไซต์นั้นอาจใช้รูปแบบสตรีมที่เป็นกรรมสิทธิ์ที่ไม่สามารถบันทึกได้โดยโปรแกรมเรียกดูแคชตัวอย่าง: Hulu, netflix, วิดีโอ youtube บางส่วน) นอกจากนี้ VLC player เป็น ยอดเยี่ยมสำหรับการดูวิดีโอแฟลช

#!/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

ผู้ที่รู้เล็กน้อยเกี่ยวกับเทอร์มินัลสามารถแก้ไขตัวแปรสองตัวแรกและบรรลุการทำงานพิเศษเล็กน้อย หรือหากต้องการดูไฟล์สดคุณสามารถพิมพ์สิ่งนี้ในเทอร์มินัลเพื่อค้นหาว่าไฟล์อยู่ที่ใดfor i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done

PS นอกจากนี้การทำงานที่ยอดเยี่ยม chlumma1 แต่เลิกจ้างสไตล์การเขียนโปรแกรม C ลูปบิต;)


2

ปลั๊กอินแฟลชเวอร์ชันล่าสุดซ่อนไฟล์ชั่วคราวโดยทำเครื่องหมายว่าลบทิ้ง ในที่สุดสตรีมวิดีโอจะถูกดาวน์โหลดเป็น "ไฟล์ที่ถูกลบ" อย่างไรก็ตามแม้ว่าเมื่อไฟล์ถูกลบหากไฟล์ถูกเปิดโดยกระบวนการคุณสามารถค้นหาไฟล์ descriptor และตามมาด้วยเนื้อหาของไฟล์

สคริปต์อย่างง่ายนี้จะพิมพ์ไฟล์อธิบายของวิดีโอ Flash ที่เปิดอยู่:

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

และคุณอาจต้องการสร้างไฟล์ปกติจาก file descriptor เช่น:

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

มิฉะนั้นตัวอธิบายไฟล์ไม่สะดวกมาก (โปรดจำไว้ว่ามันเป็นไฟล์ที่ถูกลบ!)

วิธีการนี้ควรใช้งานได้โดยไม่คำนึงถึงเบราว์เซอร์ของคุณ


1

เฮ้ปัญหานี้มีอยู่แล้วใน 10.10 ดังนั้นเพื่อที่จะแก้ปัญหาลองสิ่งนี้:

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.

[อ้างอิงจากเว็บไซต์นี้: โพสต์โดย chetancrasta ดูโพสต์ ]

ฉันหวังว่านี่จะช่วยคุณได้ แจ้งให้เราทราบว่าจะใช้งานได้หรือไม่


ฉันคิดว่าคุณเข้าใจผิดคำถาม โปสเตอร์ต้นฉบับติดตั้งและใช้งาน Flash Player ได้แล้ว เขาแค่สงสัยว่า Flash เก็บไฟล์ชั่วคราวไว้ที่ใด
Jeremy Bicha

ยา ขวา. แต่ฉันคิดว่าเขาสงสัยว่าไฟล์แฟลชหายไปไหน ด้วยเวอร์ชันใหม่ของ adobe flash player พวกเขาจะถูกจัดเก็บอย่าง @Woozy ที่กล่าวถึงแล้ว @Woozy ยังกล่าวอีกว่า "ไฟล์แคชที่เก็บไว้ไม่ง่ายอย่างที่เคยเป็นมาก่อน" ดังนั้นหากคุณต้องการให้ไฟล์แฟลชค้นหา "ง่าย" อีกครั้งคุณสามารถปรับลดรุ่นของเครื่องเล่นแฟลช ดังนั้นไฟล์แฟลชจะถูกเก็บไว้ใน / tmp อีกครั้ง ... ฉันหวังว่าคุณจะเข้าใจประเด็นของฉันตอนนี้!? หรือฉันผิด
Vito

1

สำหรับวิธีการทั่วไปที่ใช้บังคับซึ่งทำงานร่วมกับ Chrome หรือ Firefox ลองโปรแกรมเล็ก ๆ ที่เรียกว่าflashcache มันคัดลอกวิดีโอแฟลชที่กำลังเล่นกลับไปยังไดเรกทอรีปัจจุบัน

แพทช์ของฉันเพิ่มตัวเลือก-pที่ทำให้สคริปต์เล่นวิดีโอโดยใช้mplayerแทนที่จะทำสำเนาไฟล์


1

แม้ว่าจะไม่ตอบคำถามโดยตรง แต่ฉันพบปัญหาเดียวกันและหลังจากการค้นหาบางอย่างพบClipgrabซึ่งใช้งานได้ง่ายกว่ามาก


1

คุณสามารถลองใช้คำสั่งนี้ในเทอร์มินัล

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

1

ตามลิงค์นี้ ( ~/.mozilla/firefox/ewzggcll.default/Cache)

นอกเสียจากว่าฉันจะสับสนจริง ๆ (อย่าคิดเช่นนั้น) ว่า "ewzggcll" จะไม่อยู่ในเครื่องของคุณ สิ่งที่คุณจะพบว่ามีชุดตัวอักษรแบบสุ่ม (และตัวเลขอาจเป็นไปได้หรือไม่) ที่มีแนวโน้มว่าจะไม่ซ้ำกันในการติดตั้ง Linux และ Firefox ของคุณ อย่างไรก็ตามคอลเลกชันแบบสุ่มที่ดูแปลก ๆ นี้มีความสำคัญเนื่องจากเป็นสิ่งจำเป็นสำหรับการไปที่แคช [s]

หวังว่านี่จะช่วยได้! (HTH)


1

ฉันใช้ SMplayer YouTube มันมาพร้อมกับ Smplayer ที่คุณติดตั้งในศูนย์ซอฟต์แวร์อูบุนตู มันบันทึกวิดีโอ youtube ง่ายมากและใช้งานง่าย


ฉันสามารถยืนยันได้ว่าสิ่งนี้ได้ผล Ubuntu 14.04 ฉันไม่อยากจะเชื่อเลยว่าฉันเสียเวลาลองตอบคำถามทั้งหมดที่นี่และที่อื่น ๆ บนอินเทอร์เน็ตโดยไม่ประสบความสำเร็จจนกว่าฉันจะมาถึงสิ่งนี้ ... เพียงแค่ค้นหา SMPlayer ในศูนย์ซอฟต์แวร์ติดตั้งวางที่อยู่ yt และบันทึกวิดีโอ ในรูปแบบและขนาดที่ฉันเลือก ... : D
PFROLIM


1

สคริปต์นี้จะทำเช่นนั้น:

#!/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

0

Mozilla ดูเหมือนจะเปลี่ยนตำแหน่งบ่อยเกินไป นอกจากนี้ชื่อของบัฟเฟอร์ไม่เหมือนกับวิดีโอดังนั้นการค้นหาส่วนที่สัมพันธ์กันจากกองก็ยากเช่นกัน ดังนั้นการบันทึกไฟล์แคชจึงไม่ใช่วิธีแก้ไขที่สอดคล้องกัน หากการติดตั้งโปรแกรมเดสก์ท็อปไม่เป็นไร ClipGrab เป็นเครื่องมือที่ดีที่สุด คุณสามารถ

  1. ค้นหาวิดีโอ
  2. เลือกคุณภาพของวิดีโอ youtube ที่จะดาวน์โหลด
  3. เลือกรูปแบบของวิดีโอที่จะดาวน์โหลด
  4. คุณเพียงแค่ให้ URL วิดีโอ YouTube และมันจะดาวน์โหลดไฟล์

ClipGrab การดาวน์โหลดวิดีโอ YouTube ในอูบุนตู


0

คุณยังสามารถใช้ keepvid.com สำหรับเว็บไซต์สตรีมมิ่งวิดีโอจำนวนมาก มันต้องการจาวาเพื่อใช้งานบนเครื่องของคุณ เมื่อติดตั้งแล้วเพียงวางลิงค์ URL และบันทึกในรูปแบบที่หลากหลายรวมถึง mp4 หรือ WebM


0

วิธีที่ง่ายที่สุดคือใช้ส่วนเสริม "CacheViewer Continued 0.8" สำหรับ firefox

หลังจากติดตั้งกด ctrl + shift + c เพื่อเปิดแล้วกดแสดงทั้งหมดหลังจากนั้นคุณสามารถค้นหาแคชเฉพาะเช่น jpeg, flv อะไรก็ได้ ...... คลิกซ้ายที่ไอเท็มจะให้ตัวเลือกในการบันทึกบันทึก โดยให้ส่วนขยายที่จำเป็นเช่น. flv สำหรับวิดีโอแฟลชและ. jpeg สำหรับ jpeg และในทางกลับกัน ป้อนคำอธิบายรูปภาพที่นี่

ลิงค์สำหรับ addon https://addons.mozilla.org/en-US/firefox/addon/cacheviewer-continued/?src=api


0

ยังคงเป็นไปได้

คุณสามารถใช้สคริปต์เชลล์จากโพสต์นี้เกี่ยวกับวิธีการเปิด / เล่นวิดีโอ Flash ทั้งหมดที่มี VLC

ในการคัดลอกวิดีโอทั้งหมดที่คุณต้องแทนที่ในบรรทัดสุดท้ายของสคริปต์vlcโดยcpและจัดทำไดเรกทอรีปลายทางที่ท้ายบรรทัดเดียวกัน


-1

หวังว่านี่จะช่วยคุณได้ http://sahanlm.blogspot.com/2012/05/how-to-copy-google-chrome-cache-flash.html


1
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Marco Ceppi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.