LINUX.ORG.RU

Перенос плейлистов с музыкой между компьютерами

 ,


0

1

Сап. Есть два компьютера: ноутбук с 12.04, десктоп с 13.10. На первом аудиоджек накрылся, а на втором живой. Так что музыку придется слушать на втором до покупки внешней аудиокарты. Задача проста- как можно проще и беспроблемней перенести плейлисты (около полутора десятков) с треками физически на другой компьютер. Есть готовые варианты для подобных финтов? Кодить я ничего не буду, поскольку и так занят выше крыши.

★★★★★

Плееры разные что ли? Ищи универсальный формат. pls винамповский вроде все поддерживают.

ziemin ★★
()
Ответ на: комментарий от ziemin

Так плейлисты указывают только на адрес локальных треков. Толку мне от них, если на другом компьютере музки нет? А если и есть, то в совершенно других местах.

Akamanah ★★★★★
() автор топика
Ответ на: комментарий от Akamanah

Они же текстовые! Тебе регулярку для вима написать? Это ты подразумевал под «Кодить я ничего не буду»?

ziemin ★★
()
Ответ на: комментарий от ziemin

Это ты подразумевал под «Кодить я ничего не буду»?

Подразумевал то, что приоритетнее готовое решение без необходимости утыкаться в скриптописательство. Что-то типа бэкапилки для такого дела штоле с последующим развертыванием. Запустил- оно сгребло плэйлисты вместе с треками и закинуло на носитель. На другой ПеКе развернул все это дело и слушай. Если никто до такого не додумался, то придецца самому все же писать. Но уже после сессии. А без музыки тоскливо уже сейчас.

Akamanah ★★★★★
() автор топика
Ответ на: комментарий от Akamanah

Если они оба включены и связаны по сети, то проще поднять простенький web-сервер с раздачей файлов и заменить в плейлисте начало всех путей на http://*.*.*.*/music/

ziemin ★★
()
Ответ на: комментарий от Akamanah

Преврати регулярками pls в баш скрипт:

  • замени названия треков на title="\1"
  • замени путь на process "\1".
  • В начало добавь
    #!/bin/bash
    fileno=0
    title=""
    
    process()
    {
      ext="${1##*.}"
      cp "$1" /media/flash/$fileno.$ext
      (
        echo "#$title"
        echo "/media/flash/$fileno.$ext" 
       ) >> new.pls
      fileno=$(($fileno+1)
    }
    

Или как-то так. В итоге все файлы скопируются в плоский каталог с номерами, а пути в новом pls поправятся.

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Ответ на: комментарий от ziemin

Хорошо, завтра с утра попытаюсь разобраться. В баше я не силен, так что могу кастануть, есличо.

Akamanah ★★★★★
() автор топика

Долго ли, коротко ли, но я более-менее решил проблему с помощью энтрилевельных скриптиков и ГСМной глухости. Пилю историю успеха, которая некоторым совершенно справедливо покажется ребячьей радостью от первых шагов. Для начала половина работы отпала, ибо директории с эмпотрями называются одинаково на обоих устройствах. Мне предстояло вытащить только флаки с торрентопомойки, включенные в плейлисты.

ТЗ:

akamanah@akamanah-SATELLITE-C670-13D:~/playlists$ cat 'Хитрый План'
1) Находим все *.flac в *.m3u с помощью awk и выводим список в файл results.txt                 // Done: см. script.sh

2) Выдергиваем их из естественной среды обитания с помощью списка из п.1 и cp в буферную директорию для переноса к остальным файлам             // Done: см. script3.sh

3) Заменяем пути к ним в плейлистах на '/home/akamanah/Загрузки'    // В процессе, см. script2

script.sh

akamanah@akamanah-SATELLITE-C670-13D:~/playlists$ cat script.sh
awk '/'flac'/' *.m3u > results.txt                      # Парсит все плейлисты в директории на предмет наличия "flac". Затем выводит все подходящие строки в results.txt

script3.sh. Тут все криво, ругается на повторяемые файлы.

akamanah@akamanah-SATELLITE-C670-13D:~/playlists$ cat script3.sh
 cat results.txt | xargs -d "\n" cp --target-directory=/media/files/buffer

Последний шаг пока в разработке, к утру доделаю.

Akamanah ★★★★★
() автор топика
Последнее исправление: Akamanah (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.