Вот общее описание моей проблемы.сохранение любимых треков из радиопотока
У меня есть папка для моей любимой музыки (нормально, на самом деле это не проблема: D) Есть 2-3 радиостанции, которые я периодически переключаю между ними. Иногда, когда я слушаю какой-то трек на радио, я понимаю, что мне это нравится, и хочу сохранить его в своей папке избранных. Как вы можете догадаться, проблема в том, что, когда я решаю, что хочу сохранить трек, он уже был воспроизведен частично, в то время как он должен быть полностью сохранен с самого начала.
В общем, это должно быть так: я слушаю поток -> решите, что хочу сохранить его в моей папке -> нажмите некоторую кнопку -> после того, как трек на радиопотоке закончен, он появляется в моих любимых папка.
Я использую ubuntu linux 10.04, rhythmbox для прослушивания потоков. Я в порядке с установкой любых других программ либо из репозитория ubuntu, либо из внешнего источника. Я в порядке с написанием/использованием сценариев python, bash или даже программ в java или C++.
Мое исследование по этой проблеме следует.
Популярное программное обеспечение для радиопотока - это потоковое устройство. У меня не было проблем с этим, сохраняя все треки в одном файле или разбивая входящий поток на отдельные файлы. Итак, мой первый подход состоял в том, чтобы начать разворачивать поток на отдельные треки и передавать его, чтобы он мог слушать себя. Проблемы с этим подходом:
- Я в конечном итоге с большим количеством файлов, которые я тогда придется обработать, удаление всех из них, но те, которые я любил
- Как я помню, какие треки я на самом деле понравилось?
- Загрузка жесткого диска - при копировании из потока 2-3 он становится постоянной нагрузкой на диск. Это кажется излишним, поскольку большая часть данных, сохраненных на диске, будет удалена.
Я считаю, что первая проблема может быть решена с помощью какой-либо фоновой программы/скрипта - удаления последнего файла, если кнопка «Мне нравится» не имеет был нажат до этого.
Вторая проблема может быть решена с использованием dbus для ритм-бокса, например, написав python script, чтобы задать rhythmbox имя текущей воспроизводимой дорожки.
Я еще не придумал решение для третьей проблемы. Мне кажется, что linux named pipes - это способ избежать любой нагрузки на диск вообще. Но при разрыве на отдельные треки streamripper создает файлы, поэтому я не могу сделать их именованными каналами вместо обычных файлов. Конечно, я могу создать именованный канал и указать stramripper для сохранения всего потока в этот файл, а также чтение данных с другого конца канала с помощью какой-либо программы. Но в этом случае я не могу использовать логику расщепления треков streamripper.
Так как я могу решить свою проблему? Есть ли способ завершить мой подход, разрешив третью проблему? Или существует совершенно другой подход к моей общей проблеме? Единственным требованием к программному обеспечению является сам ubuntu. Я могу принимать любые программы.
почему бы не отрываться на поршневой диск, а затем переместить файл, когда вы пометить его «я люблю» кнопку? –
@ F.C. Я вообще не знаком с диском RAM. Работает ли с ним абсолютно без нагрузки на жесткий диск? Могу ли я монтировать и отключать его, не изменяя конфигурацию системы? В любом случае это кажется многообещающим. Пожалуйста, разместите его как ответ. –