суббота, 13 июня 2015 г.

Cохраняем музыку с любого сайта в Linux

Совсем простой способ для линуксоидов. Тестируем ))





Множество всяких расширений для браузеров, то не могут скачать какой-либо медиа файл, а то и вовсе требуют плату за такой функционал или показывают рекламу. Но я придумал другой способ - без всяких расширений и ухищрений, по сути он даже и не является скачиванием. Все действия будем выполнять в Chromium.

Как это все происходит?
Вы слушаете любимую и редкую песню в браузере и скачать ее возможности нет, а тем временем собирается кеш этой самой песни и об этом знает лишь только браузер, потому как в последнее время медиа-кеш стали разделять на несколько файлов со всякими крокозябрами в именах, чтоб не воровали. Но мы и не таких еще сусликов выливали, возьмем да и глянем что это за кеш такой )) А где этот кеш? - могут спросить новички. А кеш у нас может быть либо в ~/.cache/chromium/Default/Cache, либо в ~/.cache/chromium/Default/Media Cache.

Поехали!
Закрываем все вкладки в браузере. Переходим на сайт с композицией, но пока не слушаем и удаляем весь кеш:
rm -f ~/.cache/chromium/Default/Cache/*
rm -f ~/.cache/chromium/Default/"Media Cache"/*
Теперь обновляем страницу и начинаем прослушивать нашу композицию (дождитесь пока она полностью прогрузится) и смотрим в файловом менеджере или терминале где у нас "побежал" новый кеш, ту директорию мы и будем использовать.
Так, кеш "набежал", директорию мы знаем, значит теперь нужно понять, какой из этих +100500 файлов именно кеш самой композиции. Поможет нам в этом утилита file, которая и скажет что за тип файла такой:
file ~/.cache/chromium/Default/Cache/*
Или:
file ~/.cache/chromium/Default/"Media Cache"/*


Ага, тип файла узнали - это уже пол-дела! Теперь мы знаем, в какой директории и файлах наша композиция. Переходим в эту директорию:
cd ~/.cache/chromium/Default/Cache
Или:
cd ~/.cache/chromium/Default/"Media Cache"
Для удобства мы сократим вывод с помощью grep:
file * | grep  MPEG | grep -o '^[^:]*'


Список файлов получен, теперь выведем его в файл и тупо возьмем их и склеим:
file * | grep  MPEG | grep -o '^[^:]*' > audio; cat $(cat audio) > song.mp3


Вот и всё!

5 комментариев:

  1. Хм, заметил еще одну особенность. Оказывается не все сайты поддерживает данный способ ((
    Потому что некоторый кеш не несет в себе данных о типе файла и file не правильно распознает тип файла. Но способ все равно рабочий, в таких случаях можно сделать так:
    Нашли песню - закрыли другие вкладки - обновили страницу.Удаляем кеш - страницу не обновляем, а просто включаем нужную песню - побежит как раз кеш нашой композиции.
    Теперь весь собранный кеш берем и склеиваем:
    cat * > song.mp3
    Что интересно, если в фале были ID3-теги. то они тоже сохраняются. По идее можно еще прикрутить к этому переименование файла по тегу, но пока не придумал как это сделать. Интересно... ))

    ОтветитьУдалить
  2. Понимаю... да, linux way, но всё же есть ведь кое какие пределы... :))

    ОтветитьУдалить
    Ответы
    1. А что тут запредельного? Да ладно вам, интересно же все это ))
      Статья носит исключительно развлекательный характер, хотя...

      Удалить
  3. Привет! извиняюсь что не по теме, а есть для KDE отдельная прога для прослушивания подкастов, по типу Vocal для eos?

    ОтветитьУдалить
    Ответы
    1. Привет ) В виде отдельно программы не встречал, но поддержка есть в Amarok. Еще в Сlementine можно слушать, там поддержка itunes есть (поиск)

      Удалить