ฉันจะส่งออก mp3 ทั้งหมดจากเพลย์ลิสต์ใน Banshee ได้อย่างไร


13

ฉันมีเพลงทั้งหมดของฉันไม่ได้เรียงลำดับใน / home / blah / Music / มันอยู่ในโฟลเดอร์สุ่มซึ่งไม่สำคัญสำหรับฉันแม้ว่า Banshee จะดูแลทุกอย่าง ฉันมีเพลย์ลิสต์ขนาดใหญ่ซึ่งบรรจุเพลงของฉันได้ดี 2/3 ฉันจะคัดลอกไฟล์ mp3 ทั้งหมดที่อยู่ในรายการเพลงไปยังโฟลเดอร์ใหม่ได้อย่างไร?

หมายเหตุ: ฉันไม่ได้พยายามส่งออกเพลย์ลิสต์ แต่คัดลอกไฟล์ MP3 ที่ระบุไว้ในเพลย์ลิสต์

คำตอบ:


13

ฉันทำสิ่งนี้กับ rhythmbox สร้างโฟลเดอร์บนเดสก์ท็อปของคุณด้วยชื่อ ตอนนี้ค้นหารายการเล่นที่คุณชอบเมื่อรายการเพลงแสดงคลิกที่หนึ่งในเพลงและกด ctrl + รายการแสงที่สูงตอนนี้ลากและวางลงในโฟลเดอร์บนเดสก์ท็อปของคุณ สิ่งนี้ควรทำสำเนาเพลงของคุณ คุณสามารถลองเครื่องเล่นเพลงที่มีความละเอียดอ่อนซึ่งมีเครื่องมือบางอย่างที่จะช่วยคุณส่งออก

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


4
+1 สิ่งนี้ใช้ได้กับ Banshee เช่นกัน
Sabacon

1
คิดว่ามันไม่ได้ใช้งานง่ายขึ้น ใน Banshee คุณสามารถสร้างเพลย์ลิสต์อัจฉริยะได้ซึ่งจะช่วยให้คุณคัดลอกสิ่งที่คุณต้องการ
รูปร่างเชิงลบ

ขอบคุณทำงานได้ดีใช้สคริปต์ได้ดีที่สุด (ฉันค้นหามาก) คุณคือฮีโร่ของฉัน
Indacochea Wachín

15

พบวิธีแก้ปัญหาทำงานร่วมกับเครื่องเล่นสื่อใด ๆ

  1. ส่งออกเพลย์ลิสต์ของคุณเป็นไฟล์ m3u ฉันเรียกมันว่า playlist.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

เป็นคำถามที่ดีนี่เป็นคุณสมบัติที่จำเป็นอย่างยิ่งมันแปลกที่มีผู้เล่นสื่อเพียงไม่กี่คน

นี่เป็นวิธีที่คุณสามารถลองได้อาจมีข้อ จำกัด ในกรณีของคุณโดยเฉพาะอย่างยิ่งหากเพลย์ลิสต์ของคุณมีขนาดใหญ่มากเขียนซีดีข้อมูลลงดิสก์พร้อมไฟล์จากเพลย์ลิสต์จะบันทึกอิมเมจ. isiso ที่คุณต้องการแล้วแตกออก

นี่คือขั้นตอน:

  • เลือกเพลย์ลิสต์ของคุณทางด้านซ้าย ตรวจสอบให้แน่ใจว่าเลือกศิลปินทั้งหมดในบานหน้าต่างด้านขวาบน

  • เลือกแทร็กทั้งหมดในเพลย์ลิสต์ในช่องด้านล่างขวา

  • คลิกขวาและคลิกเขียนซีดี

Brasero ควรเริ่มต้นด้วยแทร็กทั้งหมดที่พร้อมที่จะเขียนลงในซีดีโดยค่าเริ่มต้นจะต้องการเขียนซีดีเพลงตอนนี้มีแนวโน้มที่จะมีแทร็กจำนวนมากที่อาจไม่พอดีกับซีดีเพลงดังนั้นขั้นตอนต่อไปคือการเปลี่ยน โครงการ brasero

  • คลิกเมนูโครงการใน brasero จากนั้นเลือกโครงการ Data ใหม่ในเมนู flyout

คุณจะถูกถามว่า "คุณต้องการยกเลิกการเลือกไฟล์หรือเพิ่มลงในโครงการใหม่หรือไม่?"

  • คลิกปุ่มเลือกไฟล์

ตอนนี้ Brasero พร้อมที่จะเขียนภาพ Iso พร้อมไฟล์เพลย์ลิสต์ของคุณไปยังตำแหน่งใด ๆ ที่คุณเลือก

  • คลิกที่ปุ่มเขียนที่ด้านล่างขวาเลือกตำแหน่งของคุณและตั้งชื่อภาพ iso กระบวนการเขียนจะค่อนข้างเร็วเนื่องจากไม่มีการแปลงรหัสหรือทำให้เป็นมาตรฐาน

  • คลิกขวาที่รูปภาพ. iso แล้วแตกไฟล์จะเป็นการสร้างโฟลเดอร์พร้อมไฟล์

หากคุณต้องการคุณสามารถไปข้างหน้าและเพียงแค่เขียน Cd เป็นข้อมูลสำรองหรือถ้าคุณต้องการมอบสำเนาให้ใครบางคน

ดูภาพหน้าจอ:

หน้าต่าง Banshee หลัก

แบนชีเขียนเมนูซีดี

แบนชีเขียนเมนูซีดี

หน้าต่างโครงการ Brasero Audio CD

Brasero Audio CD project เปลี่ยนเป็นโครงการ Data

การเลือกโครงการ Brasero

เมนู Brasero แสดงวิธีเปลี่ยนประเภทโครงการ

โครงการซีดีข้อมูลของเบรเซอร์

โครงการข้อมูลที่สามารถรองรับ 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)

เป็น Python แท้ๆและไม่ได้คัดลอกเพลงสองครั้งเมื่อใช้งานหลายครั้ง หวังว่านี่จะช่วยใครซักคน =)


0

นี่คือสคริปต์ที่ฉันใช้เพื่อคัดลอกไฟล์จากไฟล์/home/user/playlist.m3uไปยังโฟลเดอร์/ home / user / export /ตราบใดที่ไฟล์จริงของคุณอยู่ใน/ home / user / Music /หากไม่ใช่แค่เปลี่ยน หนึ่งบรรทัดในสคริปต์

#!/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 และเป็นเรื่องเล็กน้อยภายใต้ Ubuntu พลัสแบนชีจะซิงค์ Android ของฉันอย่างโกลาหล ดังนั้นฉันเกือบจะต้องใช้สิ่งนี้กับ 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.