본문 바로가기

개발

iTunes/3uTools/Foobar2000

들어가기 전에..

오디오 소스로 예전에는 CD, DVD-Audio, SACD를 사용하였습니다만,
요즘은 거의 HDD에 저장된 음원을 사용한답니다.
이유는.. 음악을 듣기 위한 과정과 조작의 편의성은 물론 음질도 많이 좋아졌기 때문이죠~
음악 플레이어는 Foobar2000을 사용하는데 스마트폰에 MonkeyMote를 설치하면,
소파에 누워서 선곡 등 플레이어의 각종 조작을 거의 다 스마트폰에서 할 수 있습니다.
환상이죠? 안 그래도 게으른데.. ㅠㅠ 음악 듣기 위해 움직일 일은 거의 없답니다 ㅋㅋ

이렇게 사용하다 보면 좋아라~하는 곡은 스마트폰으로 별점을 줍니다.
그렇게 쌓인 음악들을 차나 밖에서도 들으려면 스마트폰으로 다운로드할 수 있겠죠.
오랜 기간 동안 아이폰 6을 사용하다 최근에 아이폰 XS Max로 바꾸었답니다.
안 그래도 스마트폰의 음악을 정리하려고 했었는데...

이번 이야기는 그것에 대한 이야기입니다.
뭐 별거는 없지만.. 나이가 들면서 아는 것보단 잊어 먹는 게 많아서 자국을 남깁니다.

 

1. iTunes Music Library (?)

1.1 iTunes Directory : D:\Users\Casper\Music\iTunes\

- iTunes Library.itdb -> Library 내에 관련 모든 정보와 사용자가 지정한 속성 등을 저장
- iTunes Library Extra.itdb -> Gracenote CDDB로부터 얻은 정보를 저장
- iTunes Library Genius.itdb -> Genius Playlists를 생성하기 위한 정보를 저장
- iTunes Music Library.xml -> 다른 프로그램에서 읽을 수 있도록 iTunes에서 생성하며 참조하지 않음
  (그러나 itdb 파일이 없으면 xml 파일로부터 사용자 지정 속성 등이 없는 itdb 파일을 만듦)

 

1.2 Python iTunes Library Parser : libpytunes

 

liamks/libpytunes

Python Itunes Library parser. Contribute to liamks/libpytunes development by creating an account on GitHub.

github.com

- libpytunes 설치 및 시험

(base) D:\Work\GitHub\libpytunes>python setup.py build
(base) D:\Work\GitHub\libpytunes>python setup.py install
(base) D:\Work\GitHub\libpytunes>cd libpytunes\tests
(base) D:\Work\GitHub\libpytunes\libpytunes\tests>python test_library.py

test.py
0.00MB

from libpytunes import Library
import os

def test_songs(library):
    for id, song in library.songs.items():
        assert(hasattr(song, 'name') == True)
        print("id = " + str(id) + ", song = " + str(song.name))
        
def test_playlists(library):
    playlists = library.getPlaylistNames()
    print("playlists = " + str(playlists))
    
    for playlist in playlists:
        print("playlist = " + playlist)
        for song in library.getPlaylist(playlist).tracks:
            assert(hasattr(song, 'track_number'))
            assert(hasattr(song, 'artist'))
            assert(hasattr(song, 'name'))
            print(" " + str(song.track_number) + ". " + str(song.artist) + " - " + str(song.name))
            
if __name__ == '__main__':
    xml = "iTunes Music Library.xml"
    library = Library(os.path.join(os.getcwd(), xml))
    
    test_songs(library)
    test_playlists(library)

 

1.3 결론

- 아이폰에서 FLAC이 지원된다고 해서 iTunes Music Library를 어떡해 이용해 보려고 했는데..
  iTunes에서 안됩니다. 결국 위에서 하고자 했던 일은 헛짓(?).. iTunes 얘도 참~ 답 없다 ㅠㅠ 
- 결국 iTunes 대신 3uTools를 사용하기로 함.. 그런데 3uTools가 대~박!
  (*주의: iTunes의 자동 동기화를 반드시 해제 후 사용할 것)
- 이제 아이폰에서도 FLAC이 재생된다 ^.^!

 

2. 3uTools

 

3uTools | The best all-in-one tool for iOS users

The Most Efficient iOS Files & Data Management Tool 3uTools makes it so easy to manage apps, photos, music, ringtones, videos and other multimedia files. Fully view iOS device' s different statuses, including activation, jailbreak, battery and iCloud lock

www.3u.com

받아서 깔면 됨. 사용하기 쉽당~

[연결된 iPhone에 대한 3uTools의 Info 화면]

 

3. Foobar2000

 

foobar2000

2019-03-21 foobar2000 for mac has been updated, with volume control, output device picker and more. Download... 2019-03-11 foobar2000 v1.4.3 final has been released. Many known bugs have been addressed. All 1.4.x users should update. Download... 2019-03-05

www.foobar2000.org

3.1 Foobar2000 설치와 사용법

- 생략

 

3.2 Foobar2000에서 Star Rated Playlists 만들기

- Foobar2000 실행 (Desktop App for Music Player)
- MonkeyMote 실행 (iPhone App for Remotely Controlling Foobar2000)
- MonkeyMote > Connections > Settings > Allow Ratings > [Enable]
- MonkeyMote > Foobar2000에 접속 (Myhome) > 상단 우측 [목록] > 하단 우측 [More] >
    Dynamic Playlists의 리스트에서 (*****, ****, ***)를 선택
- Foobar2000 > MENU > File > Save Playlists.. > 5/4/3-star.m3u 입력 > [저장]
- Foobar2000 Music Folder (E:\Music)에 저장된 Playlists 확인

 

3.3 Foobar2000 Playlists의 음악 파일들을 복사하기

- 3uTools 용 Music Directory에 추가/삭제할 Playlist들을 간단하고 허접한 Python 코드로 배치 파일을 만든다.

conv.py
0.00MB

E:\Music>python conv.py -i <playlist> ... <playlist> -d <playlist> ... <playlist>

E:\Music>python conv.py
usage: conv.py [options]

make batch file from playlist file(s) to create music library

optional arguments:
  -h, --help        show this help message and exit
  -i INS [INS ...]  playlist file(s) to insert
  -d DEL [DEL ...]  playlist file(s) to delete
  -s SRC            source directory [E:\Music\]
  -t DST            target directory [D:\Down\Downloads\3uTools\Music\]

E:\Music>python conv.py -i 5-star.m3u
src = E:\Music\
dst = D:\Down\Downloads\3uTools\Music\
making playlist...
 .songs_ins = 125
 .songs_del = 0
 .songs_ins = 125 (update)
making conv.bat...
 .bat: copy = 1
 .bat: not copy = 124 (duplicate)
 .bat: del = 0
 .bat: not del = 0 (not exist)

- 배치 파일을 실행하여 Playlist들을 3uTools Music Directory로 복사

E:\Music>conv.bat 

 

3.4 복사된 음악 파일들을 3uTools로 가져오기

- 3uTools "Izeny의 iPhone"의 "Music" 항목을 선택
- 3uTools Music Directory로 복사된 파일들을 선택해서 3uTools Music 탭창 안으로 Drag & Drop
- 차암 쉽죠~ 끄읕~ ^^