콘텐츠로 바로가기

now0930 일지

이런저런 생각

  • 홈
  • 비공개
  • 강좌
  • 잔여 작업 조회
  • 위치

mp3 태그로 plexmedia server 정보 업데이트(2)

Plex로 음악을 들으면 좋은데, tag를 관리하기 어렵다. 심지어 플레이 리스트도 맘대로 뽑아낼 수 없다. plex로 관리하는 생각을 포기하고 mp3에 있는 id3를 직접 관리하기로 했다. 아래 코드 중 mp3로 변환하는 부분을 byte freaks 에서 사용했다.

#!/bin/bash
#for FILE in *.webm; do
#   echo -e "Processing video '\e[32m$FILE\e[0m'";
#   ffmpeg -i "${FILE}" -vn -ab 320k -ar 44100 -y "${FILE%.webm}.mp3";
#one;


#file이름을 수정.
total=$(ls *.mp3 | wc -l)
#echo $total
trackNo=0
for FILE in *.mp3;
do
	trackNo=$(expr $trackNo + 1)
	#echo $trackNo
	SONG=$(basename "$FILE" | cut -d"-" -f2|sed 's/^_//'| sed 's/_Official_Video//'|sed 's/_//g')
	ALBUM="Evolution"
	ARTIST="AlexisFfrench"
	mYearDate="2018-08-31"
	#echo $SONG
	#echo $ALBUM
	#echo $ARTIST
	mid3v2 -t "$SONG" -A "$ALBUM" -a "$ARTIST" -y "$mYearDate" -T "$trackNo/$total" "$FILE"

done

이미지는 같은 폴더에 covor.jpg나 다른 이름으로 넣어주면 잘 찾는다. 앨범 이름이 같더라도 track에 번호가 없으면 같은 앨범으로 인식하지 않는다. 모두 수정 후 메타데이터 새로 고침하면 다시 읽는다. 자가 격리 기간에 앨범이나 정리해야지.

하루 종일 해 본 결과 Plex가 너무 까탈스럽다고 결론 냈다. 게다가 각 회사마다 id3 태그를 지 멋대로 붙여 같은 앨범으로 인식시키는데 애 먹었다. 같은 앨범이더라도 장르가 다르면 다른 앨범으로 인식한다. 트랙도 겹치면 다른 앨범으로 본다. plex가 스캔하면 id3 정보를 자기 데이터 베이스로 저장하는데, id3 태그를 수정하더라도 지가 가진 정보를 변경하지 않는다. 권한을 6->0->6으로 주어 다시 인식시켰다. 결론은 각 폴더에 앨범을 설명하는 파일을 넣어주고, 스크립트가 파일을 읽어 일괄 업데이트 하는 형식이 가장 낫다고 냈다. 파일 이름에 작곡가, 곡 이름을 정리하고 이를 basename으로 정리했다. 나머지는 찾아서 details.txt에 넣었다. 앨범 커버는 동일 디렉토리에 cover.jpg로 넣으면 된다.

다음 details.txt 파일은 앨범 폴더에 있다. 구분자는 스페이스가 아니라 탭 이다.

SONGEXP	$(basename $FILE | cut -d'-' -f2 | sed 's/OfficialVideo//' | sed 's/\.mp3//')
ARTISTEXP	$(basename $FILE | cut -d'-' -f1)
ALBUMEXP	"Evolution"
mYearDateEXP	"2018-08-31"
GENREEXP	"Classical"

이 파일을 참조하여 업데이트 하는 스크립트는 다음과 같다. 나중에 활용하려 COMMENT는 남겼다. youtube-dl를 –no-playlist로 하면 해당 곡만 다운로드 할 수 있다.

#!/bin/bash
#for FILE in *.webm; do
#   echo -e "Processing video '\e[32m$FILE\e[0m'";
#   ffmpeg -i "${FILE}" -vn -ab 320k -ar 44100 -y "${FILE%.webm}.mp3";
#done;

#FILE="AlexisFfrench-AMomentInTime-woETd5QW52E.mp3"
#Details.txt 파일에 형식 정의 ^I로 구분됨.
#SONGEXP: 곡 형식
total=$(ls *.mp3 | wc -l)
trackNo=0

for FILE in *.mp3;
do
	trackNo=$(expr $trackNo + 1)
	SONGEXP=$(cat ./details.txt | grep SONGEXP | cut -d'	' -f2)
	#변수에서 읽은 expression을 실행하여 다시 변수에 할당.
	eval song="$SONGEXP"
	ARTISTEXP=$(cat ./details.txt | grep ARTISTEXP| cut -d'	' -f2)
	#echo $ARTISTEXP
	eval artist="$ARTISTEXP"
	ALBUMEXP=$(cat ./details.txt | grep ALBUMEXP| cut -d'	' -f2)
	eval album="$ALBUMEXP"
	mYearDateEXP=$(cat ./details.txt | grep mYearDateEXP| cut -d'	' -f2)
	eval myeardate="$mYearDateEXP"
	GENREEXP=$(cat ./details.txt | grep GENREEXP| cut -d'	' -f2)
	eval genre="$GENREEXP"
	#echo $song
	#echo $artist
	#echo $album
	#echo $myeardate
	#echo $genre
	mid3v2 -t "$song" -A "$album" -a "$artist" -y "$myeardate" -T "$trackNo/$total" --TCON $genre --TPE2 "$artist" "$FILE"

done

<< COMMENT


#file이름을 수정.
total=$(ls *.mp3 | wc -l)
echo $total
#echo $total
trackNo=0
for FILE in *.mp3;
do
	trackNo=$(expr $trackNo + 1)
	#echo $trackNo
	#SONG=$(basename "$FILE" | cut -d"-" -f2|sed 's/^_//'| sed 's/_Official_Video//'|sed 's/_//g' | sed 's/\.flac//'|sed 's/^[0-9]\{1,2\}//'| sed 's/\.mp3//')
	SONG=$(basename "$FILE" | cut -d'-' -f2| sed 's/\.mp3//'| sed 's/^ //g'|sed 's/^[0-9]\{1,2\} //g')
	#SONG=$(basename "$FILE" | cut -d'-' -f1-2| sed 's/\.flac//'| sed 's/^ //g'|sed 's/^[0-9]\{1,2\} //')
	#ARTIST=$(basename "$FILE" | cut -d'-' -f1 | cut -d'.' -f2)
	#ARTIST="Leszek Mozdzer"
	#ARTIST="Idil Biret"
	ARTIST="다양한가수들"
	#ARTIST="Ivo Pogorelich"
	#ALBUM="Chopin Piano Favourites"
	#ALBUM="The Best of Chopin"
	ALBUM="가요추천1500"
	#ALBUM="Chopin Recital"
	#mYearDate="1985-02-15"
	mYearDate="2020-04-11"
	#echo $trackNo
	#echo "$SONG"
	#echo "$ALBUM"
	#echo "$ARTIST"
	#echo "$total"
	#mid3v2 -t "$SONG" -A "$ALBUM" -a "$ARTIST" -y "$mYearDate" -T "$trackNo/$total" --TCON Classical --TPE2 "$ARTIST" "$FILE"
	mid3v2 -A "$ALBUM" -a "$ARTIST" -T "$trackNo/$total" --TCON "Other" --TPE1 "$ARTIST" --TIT2 "$SONG" "$FILE"

	#mid3v2 -T "$trackNo/$total" "$FILE"

done
COMMENT

유투브에서 음원을 다운로드 하여 개인적으로 들으면 불법이 아니라고 한다.(–;) 구매하는 음원도 내가 정리해야 하는데 굳이 돈 주고 사야할지 모르겠다. 스트리밍으로 듣다가 음원을 구해 듣는 방식이 더 싸겠다.

이 글 공유하기:

  • Tweet
발행일 2020-04-11글쓴이 이대원
카테고리 생활코딩 태그 idv3, mid3v2, mp3, plexmediaserver, tag

댓글 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

글 내비게이션

이전 글

사기 회음후 열전, 괴철이 천하 삼분지계를 제안한다.

다음 글

tensorflow 2.1.0 compile

2025 5월
일 월 화 수 목 금 토
 123
45678910
11121314151617
18192021222324
25262728293031
4월    

최신 글

  • common mode, differential mode 2025-05-11
  • signal conditioner, 신호 처리기 2025-05-10
  • strain gage 2025-05-09
  • 칼만 필터 2025-05-01
  • positioner(I/P) 2025-04-26

카테고리

  • 산업계측제어기술사
  • 삶 자국
    • 책과 영화
    • 투자
  • 생활코딩
    • LEGO
    • ROS
    • tensorflow
  • 전기기사
  • 피아노 악보

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

페이지

  • 소개
  • 잔여 작업 조회
    • 작업 추가
    • 작업의 사진 조회
    • 작업 수정 페이지
  • 사진
    • GPS 입력된 사진
    • 사진 조회
  • 위치
    • 하기 휴가 방문지
    • 해외 출장

태그

android bash c docker driver FSM gps java kernel LEGO linux mysql network program opcua open62541 plc programmers python raspberry reinforcementLearning ros state space system program tensorflow transfer function 경제 미국 민수 삼국지 세계사 실기 에너지 역사 유전자 일본 임베디드 리눅스 전기기사 조선 중국 채윤 코딩 테스트 통계 한국사 한국어

팔로우하세요

  • Facebook
now0930 일지
WordPress로 제작.