2011-05-12

cp_youtube.sh

Я тут немного притормозил выкладывание скриптиков, все времени не было. А выкладываю я их, как вы может быть заметили, по алфавиту. :) Но сегодня, специально по просьбе уважаемого tengu, выкладываю скриптик для сохранения просмотренного флеш видео. :)

В двух словах: сейчас очень много развелось разных сайтов, на которых можно глянуть видео через флеш плеер. Первый из них - это конечно же youtube. Все бы ничего, но просмотренное видео штатное не сохранить. :( Но раз вы его посмотрели - значит на компе оно есть! Не может не быть! :) Вот тут и поможет небольшой скриптик. Я его обычно вешаю на Crtl + Shift + F5. И если видео "приглянулось" - нажимаю эту комбинацию. Да, сохранит он ВСЕ просмотренные видео, ну так лишнее всегда можно удалить. ;) В общем: меньше слов - больше дела! В скрипте используется zenity, которое впрочем всегда можно выкинуть, если не нравится. ;)

Так же нужен lsof, без которого работать увы не будет. Впрочем вы всегда можете получить список открытых файлов другими, привычными для вас способами. Я не стал себя утруждать. ;)

#!/bin/bash

VIDEO_DIR=~/video/youtube

### Первая версия. Копировала из /tmp дириктории.
#mkdir -p $VIDEO_DIR
#
#LIST=`cd /tmp && ls Flash*`
#
#for I in $LIST
#do
# OLD_NAME=$I
# NEW_NAME=youtube_`( cd /tmp && ls -t --full-time $I ) | awk '{print $6 "_" $7}'`.flv
# cp /tmp/$OLD_NAME $VIDEO_DIR/$NEW_NAME
#done
#
#zenity --info --text="Скопировано видео:\n\n$LIST"

### Новая версия плееров сразу же удаляет файл, надо доставать дескриптор из /proc
mkdir -p $VIDEO_DIR

(
lsof -X | grep "/tmp/Flash" | while read I
do
 FD=`echo $I | awk '{print $4}' | sed 's/[^0-9]*\([0-9]*\)[^0-9]*/\1/'`
 PID=`echo $I | awk '{print $2}'`
 NEW_NAME=youtube_`date +%F_%T_%N`.flv
 cp /proc/$PID/fd/$FD $VIDEO_DIR/$NEW_NAME
 echo $NEW_NAME
done
zenity --info --text="Копирование окончено"
) | zenity --list --title "FLV Copy" --text "Копируем:" --column="Files" --width=640 --height=480

2 комментария:

  1. Анонимный12 мая 2011 г., 10:52

    Спасибо :)))

    Я его назвал youtube, положил в ~/bin и сделал выполняемым. Ну и переправил путь на сохранения на мой собственный (~/media/youtube) - благо у тебя все очень грамотно расписано (завидую :)

    Когда нужно - запускаю gmrun и в нем пишу youtube - поскольку он понимает автодополнение, а имя получилось уникальное - срабатывает на ура :)

    ОтветитьУдалить
  2. Всегда пожалуйста. :)

    Я вообще стараюсь всегда расписать все, что бы и другим если приспичит легко было разобраться, и сам спустя какое-то время не тупил, глядя в свою же собственную писанину. ;)

    Раньше я тоже его из консоли запускал, но потом как-то на "горячие" подвесил и прижилось. :)

    ОтветитьУдалить