Kopiowanie plików mp3 z playlisty m3u

Grafika, film, dźwięk.
Awatar użytkownika
piori
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 20 cze 2008, 08:50
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86
Kontakt:

Kopiowanie plików mp3 z playlisty m3u

Post autor: piori »

Witam,

Poszukuję programu (lub odtwarzacza posiadającego taką funkcję) kopiującego pliki mp3 z wpisów zawartych w playliście np. w formacie m3u do określonego folderu docelowego.

Chyba jak każdy użytkownik komputera, pliki z muzyką mam na dysku poumieszczane w wielu różnych folderach, i gdy chcę sobie skopiować ulubione np. na pendrive'a lub nagrać na płytę to trzeba szukać ich "na piechotę".

Pod Windows używałem kiedyś programu "m3u copier.exe" (taki z ikonką MTv) - sprawował się świetnie, wystarczyło wskazać plik playlisty oraz folder docelowy i wszystko ładnie się kopiowało. Niestety pod Ubuntu (Wine) przy próbie operacji natychmiast pokazuje "success" mimo że nic nie skopiował :sad:
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: verdorben »

Mógłbyś dać jakiś podgląd do tego formatu playlisty m3u?
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
Awatar użytkownika
piori
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 20 cze 2008, 08:50
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86
Kontakt:

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: piori »

Jest to prosty plik tekstowy zawierający względne ścieżki do plików dźwiękowych, więc taki program to nic specjalnego, po prostu automatyzacja i z pewnością da się to załatwić prostym skryptem, ale myślałem że może jest jakiś "gotowiec". Plik taki potrafi wygenerować np. odtwarzacz Rhythmbox.
Załączniki
zrzut_ekranu-Nowa lista odtwarzania.m3u.jpg
(47.8 KiB) Pobrany 15 razy
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: verdorben »

Kod: Zaznacz cały

#!/bin/sh
set -e

if [ "$1" = "" ];then
echo "Podaj nazwę pliku m3u z którego mam czytać/kopiować "
exit
fi

if [ "$2" = "" ];then
echo "Podaj folder docelowy."
exit
fi

grep ^[A-Za-z] $1 >$1.$$

while read LINE;do
 CONVERT=`echo $LINE |sed 's/ /\*/g'`
cp $HOME/$CONVERT $2
done < $1.$$
rm -f $1.$$
Masz tak na szybko, zapisz sobie nadaj chmod 755 i uruchom

Kod: Zaznacz cały

skrypt plikm3u folder-docelowy
Żebyś miał mniej problemów to
Stwórz:

Kod: Zaznacz cały

mkdir $HOME/bin
przesuń swój skrypt do $HOME/bin
otwórz $HOME/.bashrc, wklej:

Kod: Zaznacz cały

PATH="$PATH:$HOME/bin"
zapisz, wyloguj/zaloguj się i Twój skrypt będzie(powinien) działał niezależnie skąd go wywołasz.
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
Awatar użytkownika
piori
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 20 cze 2008, 08:50
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86
Kontakt:

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: piori »

Skrypt wywołuje się z dowolnego miejsca, dopytuje o plik i folder docelowy gdy się ich nie poda.
Niestety, gdy wszystko dostanie to nie kopiuje plików z playlisty tylko tworzy pusty plik o nazwie takiej samej jak plik playlisty, w tym samym katalogu i dodaje dodatkowe rozszerzenie składające się z liczby 4-cyfrowej, za każdym razem trochę większej.
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: verdorben »

Spróbuj $1, $2, $HOME, $CONVERT zamienić na ${1} ${2} ${HOME} i ${CONVERT}

edit1:
Gdyby to nie pomogło to w skrypcie
zmień set -e
na
set -x
wykonaj jakąś próbę skopiowania i wklej wynik tutaj,gdyby się znowu nie powiodło

edit2:
Ewentualnie spróbuj w skrypcie
#!/bin/bash
zamiast
#!/bin/sh
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
Awatar użytkownika
piori
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 20 cze 2008, 08:50
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86
Kontakt:

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: piori »

Gdyby to nie pomogło to w skrypcie
zmień set -e
na
set -x
wykonaj jakąś próbę skopiowania i wklej wynik tutaj,gdyby się znowu nie powiodło
Wynik:

Kod: Zaznacz cały

piori@p4m:~/bin$ ./m3ucopy /home/piori/Pulpit/moje.m3u /home/piori/Pulpit/best/
+ [ /home/piori/Pulpit/moje.m3u =  ]
+ [ /home/piori/Pulpit/best/ =  ]
+ grep ^[A-Za-z] /home/piori/Pulpit/moje.m3u
+ read LINE
+ rm -f /home/piori/Pulpit/moje.m3u.4833
Ewentualnie spróbuj w skrypcie
#!/bin/bash
zamiast
#!/bin/sh
Ta zmiana nie daje żadnej różnicy.
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: Kopiowanie plików mp3 z playlisty m3u

Post autor: verdorben »

Tak wygląda u mnie

test2 jest skryptem umieszczonym w $HOME/bin
test na próbę lista m3u

test2 $HOME/Desktop/test $TMP

Kod: Zaznacz cały

+ '[' /home/verdorben/Desktop/test = '' ']'
+ '[' /home/verdorben/tmp = '' ']'
+ '[' '!' -d /home/verdorben/tmp ']'
+ grep '^[A-Za-z]' /home/verdorben/Desktop/test
+ read LINE
++ echo Desktop/a12 15-44 '(22).mp4'
++ sed 's/ /\*/g'
+ CONVERT='Desktop/a12*15-44*(22).mp4'
+ cp '/home/verdorben/Desktop/a12 15-44 (22).mp4' '/home/verdorben/Desktop/a1215-44 (22).mp4' /home/verdorben/tmp
+ read LINE
++ echo Desktop/a1215-44 '(22).mp4'
++ sed 's/ /\*/g'
+ CONVERT='Desktop/a1215-44*(22).mp4'
+ cp '/home/verdorben/Desktop/a1215-44 (22).mp4' /home/verdorben/tmp
+ read LINE
+ rm -f /home/verdorben/Desktop/test.21201 
cat test
##125
Desktop/a12 15-44 (22).mp4
Desktop/a1215-44 (22).mp4

ls $TMP/*.mp4
/home/verdorben/tmp/a12 15-44 (22).mp4 /home/verdorben/tmp/a1215-44 (22).mp4

edit:
Skrypt działa na Slackware/Mandriva, nie mam pod ręką *buntu żeby sprawdzić, ale wielokrotnie tworzone skrypty na innych dystrybucjach działały mi na *buntu

edit2:
Ciągnę właśnie DVD Ubuntu, wieczorem dam Ci odp., czy i jak funkcjonuje na Ubuntu.

EDIT:
No to muszę Ciebie zmartwić, skrypt działa i na aktualnym Ubuntu.

Kod: Zaznacz cały

ubuntu@ubuntu:~$ cp -R '/media/disk-1/verdorben/bin' .
ubuntu@ubuntu:~$ mkdir tmp
ubuntu@ubuntu:~$ export TMP=$PWD/tmp
ubuntu@ubuntu:~$ echo $TMP
/home/ubuntu/tmp
ubuntu@ubuntu:~$ export PATH="$PATH:$HOME/bin"
ubuntu@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ubuntu/bin

ubuntu@ubuntu:~$ test2 Desktop/test $TMP
+ [ Desktop/test =  ]
+ [ /home/ubuntu/tmp =  ]
+ [ ! -d /home/ubuntu/tmp ]
+ grep ^[A-Za-z] Desktop/test
+ read LINE
+ echo Desktop/a12 15-44 (22).mp4
+ sed s/ /\*/g
+ CONVERT=Desktop/a12*15-44*(22).mp4
+ cp /home/ubuntu/Desktop/a12 15-44 (22).mp4 /home/ubuntu/Desktop/a1215-44 (22).mp4 /home/ubuntu/tmp
+ read LINE
+ echo Desktop/a1215-44 (22).mp4
+ sed s/ /\*/g
+ CONVERT=Desktop/a1215-44*(22).mp4
+ cp /home/ubuntu/Desktop/a1215-44 (22).mp4 /home/ubuntu/tmp
+ read LINE
+ rm -f Desktop/test.6193

ubuntu@ubuntu:~$ ls $TMP
a12 15-44 (22).mp4  a1215-44 (22).mp4

ubuntu@ubuntu:~$ which sh
/bin/sh
ubuntu@ubuntu:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2009-04-20 13:59 /bin/sh -> dash
ubuntu@ubuntu:~$
Podeślij mi na ten adres: hlcxgnoawath @ mailinator.com
jakąś playliste ,ten skrypt który sobie skopiowałeś +
$ dpkg -l | grep ^ii | awk '{print $2}' >zainstalowane <- ten plik
+ wynik komendy
$ env >mójenv <- ten plik
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
ODPOWIEDZ

Wróć do „Muzyka, filmy, zdjęcia, grafika”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości