Ubuntu 12.04 (Chính xác) - Hướng dẫn về Firefox 11 Phiên bản sửa đổi của tập lệnh bash của chlumma1.
Với trình soạn thảo văn bản, lưu mã bên dưới vào tệp có tên "getvids.sh". Di chuyển nó đến vị trí bạn muốn lưu video. Nhấp chuột phải vào tệp, đi đến Thuộc tính, Thay đổi Quyền thành "Cho phép thực thi dưới dạng chương trình".
Tất cả những gì bạn phải làm là nhấp vào tập lệnh, chọn "Chạy trong Terminal" và nó sẽ lưu tất cả các tệp video vào thư mục đó. Để lưu toàn bộ video, nó phải được tải xong trong trình duyệt của bạn. Nó sẽ lưu video từ hầu hết mọi trang web, bao gồm youtube, vimeo, dailymotion, metacafe, liveleak, facebook . Chỉ cần xóa bất kỳ tập tin video bạn không muốn.
(Nếu video bạn muốn không được lưu, thì trang web có thể đang sử dụng định dạng luồng độc quyền không thể lưu bởi bất kỳ chương trình truy xuất bộ đệm nào. Ví dụ: Hulu, netflix, một số video youtube?) Ngoài ra, trình phát VLC là một tuyệt vời để xem video 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
Những người biết một chút về thiết bị đầu cuối có thể chỉnh sửa hai biến đầu tiên và đạt được một chút chức năng bổ sung. Ngoài ra, để xem các tệp trực tiếp, bạn có thể nhập tệp này vào một thiết bị đầu cuối để tìm ra vị trí của chúngfor i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done
Tái bút Ngoài ra, công việc tuyệt vời chlumma1, nhưng bỏ qua các vòng lặp kiểu lập trình C một chút;)