четверг, 21 апреля 2011 г.

И снова копируем ролики с youtube.

Последний раз я выкладывал скрипт для копирования роликов с youtube в несколько переработанном виде. И все бы ничего, но с какого-то момента скрипт перестал работать! :( А произошло это потому, что флеш обновили и он стал хитрее: после начала закачки ролика на диск, файл из /tmp удаляется! Но так как это не "винды", то он продолжает прекрасно читаться даже после удаления. :) В связи с этим скрипт пришлось несколько "перелопатить". ;) И так, кому надо - читаем дальше, кому не надо - как обычно проходим мимо. :)))


#!/bin/bash

VIDEO_DIR=~/video/youtube

### Новая версия сразу же стирает файл, надо доставать из /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 --text-info --text="Копирование видео"

Для работы нужен lsof, для красоты - zenity :)