밴시의 재생 목록에서 모든 mp3를 내보내려면 어떻게해야합니까?


13

/ home / blah / Music /에 분류되지 않은 모든 음악이 있습니다. Banshee가 모든 것을 처리하기 때문에 그것은 임의의 폴더에 있습니다. 좋은 음악의 2/3를 포함하는 큰 재생 목록이 있습니다. 재생 목록에 나열된 모든 mp3 파일을 새 폴더로 복사하려면 어떻게해야합니까?

참고 : 재생 목록을 내보내려고하지 않지만 재생 목록에 나열된 mp3를 복사하십시오.

답변:


13

나는 rhythmbox로 이것을했고, 데스크탑의 폴더에 이름을 지정합니다. 이제 음악 목록에서 노래 중 하나를 클릭 할 때 원하는 재생 목록을 찾은 다음 구멍 목록을 ctrl + a 높은 조명으로 유지하여 바탕 화면의 폴더로 끌어다 놓습니다. 음악의 사본을 만들어야합니다. 클레멘 타인 음악 플레이어를 사용해 볼 수도 있습니다.

http://www.clementine-player.org/


4
+1 밴시에서도 작동합니다.
Sabacon

1
더 직관적이지 않은 것 같아요. Banshee에서는 스마트 재생 목록을 만들 수 있으므로 원하는 것을 정확하게 복사 할 수 있습니다.
부정적인 모양

고마워, 잘 작동하고 스크립트를 사용하는 것이 가장 좋습니다 (많은 검색). 당신은 나의 영웅입니다
Indacochea Wachín

15

해결책을 찾았으며 모든 미디어 플레이어와 호환됩니다.

  1. 재생 목록을 m3u 파일로 내 보냅니다. 나는 그것을 재생 목록이라고 불렀다.

  2. 파일을 저장 한 폴더에서 터미널을 엽니 다.

  3. 이것을 복사하여 붙여 넣기 :

    sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do cp "${line}" '/path/to/output/folder/'; done
    

원하는 출력 폴더 경로를 변경하십시오.

참고 : 터미널은 파일을 복사하는 동안 출력을 제공하지 않습니다.


1
대박! 나는 그것을 천 번 +1 할 수 있기를 바랍니다.
Pratyush

플레이어가 Banshee라면 가장 쉬운 방법입니다. 감사!
nitins

4

좋은 질문입니다. 이것은 잘 필요한 기능입니다. 미디어 플레이어가 거의없는 것은 이상합니다.

시도 할 수있는 방법은 다음과 같습니다. 특히 재생 목록이 매우 큰 경우 재생 목록의 파일을 사용하여 데이터 CD를 디스크에 쓰고 원하는 .iso 이미지를 저장 한 다음 추출하십시오.

단계는 다음과 같습니다.

  • 왼쪽에서 재생 목록을 선택하십시오. 오른쪽 상단 창에서 모든 아티스트가 선택되어 있는지 확인하십시오.

  • 오른쪽 아래 창에서 재생 목록의 모든 트랙을 선택하십시오.

  • 마우스 오른쪽 버튼을 클릭하고 CD 쓰기를 클릭하십시오.

Brasero는 CD에 구울 준비가 된 모든 트랙으로 시작해야합니다. 기본적으로 오디오 CD를 쓰려고합니다. 이제 오디오 CD에 맞지 않는 트랙이 너무 많아서 다음 단계는 브라질 프로젝트.

  • brasero에서 프로젝트 메뉴를 클릭 한 다음 플라이 아웃 메뉴에서 새 데이터 프로젝트를 선택하십시오.

"파일 선택을 버리고 새 프로젝트에 추가 하시겠습니까?"라는 메시지가 표시됩니다.

  • 파일 선택 유지 버튼을 클릭하십시오.

Brasero는 이제 모든 재생 목록의 파일이 포함 된 ISO 이미지를 원하는 위치에 쓸 수 있습니다.

  • 오른쪽 하단의 레코딩 버튼을 클릭하고 위치를 선택하고 ISO 이미지 이름을 지정하십시오. 트랜스 코딩이나 정규화가 수행되지 않으므로 쓰기 프로세스가 상당히 빠릅니다.

  • .iso 이미지를 마우스 오른쪽 버튼으로 클릭하고 압축을 풀면 파일이있는 폴더가 생성됩니다.

원하는 경우 계속해서 CD를 백업으로 구울 수 있거나 누군가에게 사본을 제공해야합니다.

스크린 샷보기 :

밴시 메인 창

밴시 CD 쓰기 메뉴

밴시 CD 쓰기 메뉴

Brasero Audio CD 프로젝트 창

Brasero Audio CD 프로젝트, 데이터 프로젝트로 변경

브라 세로 프로젝트 선정

프로젝트 유형을 변경하는 방법을 보여주는 Brasero 메뉴

Brasero 데이터 CD 프로젝트

상당한 양의 mp3를 처리 할 수있는 데이터 프로젝트


3

이 훌륭한 솔루션에 대한 부정적인 모양에 감사드립니다! 재생 목록에서의 위치에 따라 파일 이름이 바뀌도록 수정했습니다.

sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do (( COUNTER++ )); filename="${line##*/}"; cp "${line}" "/path/to/output/folder/$COUNTER - $filename"; done

2

또한 누군가에게 유용 할 수 있으므로 스크립트를 그대로 두겠습니다. https://gist.github.com/CRImier/9777606

import os
import shutil

directory_name = "playlist/"
playlist_name = "playlist.m3u"

f = open(playlist_name, "r")
files = []
for line in f:
    line = line.strip().strip("\n").strip("\r")
    if line and not line.startswith("#"):
        files.append(line)
dir_contents = os.listdir(directory_name)
for file in files:
    try:
        filename = os.path.basename(file)
        if filename not in dir_contents:
            shutil.copy(file, "playlist/")
            print filename
        else:
            print ".", #File already there
    except Exception as e:
        print str(e)

순수한 파이썬이며 여러 번 실행할 때 노래를 두 번 복사하지 않습니다. 희망이 누군가를 도울 것입니다 =)


0

실제 파일이 / home / user / Music /에 있는 한 /home/user/playlist.m3u 파일에서 / home / user / export / 폴더로 파일을 복사하는 데 사용하는 스크립트는 다음과 같습니다 . 스크립트에서 한 줄.

#!/bin/bash
m3u=$(sed /#.*/d "/home/user/playlist.m3u"|sed 's/\.\.\/\.\./\/home\/user/g');

echo "$m3u" | while read line; do
    newFile=$(echo $line| sed 's/\/home\/user\/Music\//\/home\/user\/export\//');
    newPath=$(echo "$newFile" | grep -o .*\\/);

    mkdir -p "$newPath";
    cp "$line" "$newFile";  
done;
exit 0;

밴시 항목을 폴더로 드래그하는 것과의 차이점은이 스크립트는 /artists/albums/track.mp3의 계층 구조 또는 생성 한 m3u 재생 목록을 정확하게 반영해야하는 모든 계층 구조를 유지한다는 것입니다. 따라서이 방법으로 복제 할 수 없으며 모든 트랙이 이전 위치에 있습니다.

내 전화에는 MTP 만 있고 우분투에서는 약간 흐릿하기 때문에 이것을 만들었습니다. 또한 밴시는 내 안드로이드를 매우 혼란스럽게 동기화합니다. 내보내기 폴더를 wifi로 전송하는 데 거의 사용했습니다.


0

사용자가 제공 한 python 스크립트 "Арсений Пичугин"를 개선하여 파일을 새 위치로 복사 할 때 디렉토리 구조를 유지했습니다. 그러면 .m3u 파일과 대상 음악 파일을 새 장치로 복사 할 수 있으며 링크가 끊어지지 않으므로 재생 목록이 실제로 mp3 플레이어 또는 전화에서와 같이 재생됩니다. 스크립트는 음악 파일이 있고 .m3u 파일이있는 최상위 폴더에 있다고 가정합니다.

import os
import shutil

#here, add the name of the dir where the playlist files will be copied
directory_name = "/home/username/Desktop/Music/"
playlist_name = "Test_Favorites.m3u"

f = open(playlist_name, "r")
files = []
for line in f:
    line = line.strip().strip("\n").strip("\r")
    if line and not line.startswith("#"):
        files.append(line)
dir_contents = os.listdir(directory_name)
#print dir_contents
for file in files:
    try:
        filename = os.path.basename(file)
        filepath = os.path.dirname(file)
        newpath = directory_name + "" + filepath
        newname = newpath + "/" + filename
        if os.path.exists(newname):
          print filename + " already existed, not copied."
        else:
          if not os.path.exists(newpath):
            os.makedirs(newpath)
          shutil.copy(file,newpath)
          print newname
    except Exception as e:
        print str(e)

즐겨!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.