카테고리 보관물:

유튜브 음악 영상에서 고음질 ogg 파일 추출하기

지금 사용 중인 유튜브 요금제가 유튜브 프리미엄도 아니고 휴대전화 요금제도 데이터 무제한이 아니라서 외출 시 감상할 목적으로 유튜브 음악 영상에서 ogg 파일을 추출해서 휴대전화에 보관해 두고 듣는 방법을 찾아봤다.

유튜브 영상 다운로드는 yt-dlp 프로그램을 이용하면 된다. https://github.com/yt-dlp/yt-dlp에서 프로그램을 내려받고 다음과 같이 실행하면

yt-dlp.exe -F <유튜브 영상 URL>

다음과 같이 대상 유튜브 영상의 각종 영상/음성 관련 정보가 나온다.

$ yt-dlp.exe -F https://www.youtube.com/watch?v=<video ID>
[youtube] Extracting URL: https://www.youtube.com/watch?v=<video ID>
[youtube] <video ID>: Downloading webpage
[youtube] <video ID>: Downloading ios player API JSON
[youtube] <video ID>: Downloading android player API JSON
WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "<video ID>")
[youtube] <video ID>: Downloading player edea0cc6
[youtube] <video ID>: Downloading m3u8 information
[info] Available formats for <video ID>:
ID  EXT   RESOLUTION FPS CH │   FILESIZE  TBR PROTO │ VCODEC         VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                 mhtml │ images                                 storyboard
sb2 mhtml 80x45        0    │                 mhtml │ images                                 storyboard
sb1 mhtml 160x90       0    │                 mhtml │ images                                 storyboard
sb0 mhtml 320x180      0    │                 mhtml │ images                                 storyboard
233 mp4   audio only        │                 m3u8  │ audio only         unknown             [ko] Default
234 mp4   audio only        │                 m3u8  │ audio only         unknown             [ko] Default
139 m4a   audio only      2 │   22.15MiB  49k https │ audio only         mp4a.40.5   49k 22k [ko] low, m4a_dash
249 webm  audio only      2 │   24.01MiB  53k https │ audio only         opus        53k 48k [ko] low, webm_dash
250 webm  audio only      2 │   31.75MiB  70k https │ audio only         opus        70k 48k [ko] low, webm_dash
140 m4a   audio only      2 │   58.79MiB 129k https │ audio only         mp4a.40.2  129k 44k [ko] medium, m4a_dash
251 webm  audio only      2 │   61.90MiB 136k https │ audio only         opus       136k 48k [ko] medium, webm_dash
...

여기서 ACODEC이 ‘opus’로 표시된 데이터가 ogg 데이터일 텐데, 이 데이터를 내려받아 ogg 파일로 저장하면 된다. 특정 데이터를 받으려면 첫 번째 칼럼인 ID를 이용하면 되고, 여기서는 ID가 251인 파일을 다음 명령어로 내려받는다.

yt-dlp.exe -f 251 <유튜브 영상 URL>

그런데 위와 같은 경우 확장자(EXT)가 webm이니 webm 파일로 내려받게 되므로 이 파일에서 오디오 데이터만 추출하려면 ffmpeg를 이용하면 된다. ffmpeg가 설치돼 있다는 가정하에 아래 명령어를 실행하면 ogg 파일이 추출된다.

ffmpeg -i "input.webm" -vn -acodec copy "output.ogg"

그럼 변환된 ogg 파일을 플레이어에 넣고 재생하면 된다.

추가로 유튜브 영상이 여러 곡으로 구성된 경우라면 변환된 ogg 파일을 각 곡별 재생 구간으로 잘라서 추출하면 된다.

ffmpeg -i output.ogg -acodec copy -ss "시작구간<00:00:00>" -to "종료구간<00:99:99>" "<파일명>.ogg"

그럼 각 파일별로 노래를 쪼개서 저장할 수 있으니 재생할 때 편하다.

Google Family Link가 적용된 안드로이드 폰 교체하기

이번에 자녀가 쓰는 스마트폰을 LG 폰에서 샤오미 폰으로 교체해 줬는데, Google Family Link가 설정돼 있어서 그런지 몰라도 이전하는 데 애를 좀 먹었다. 그 과정에서 배운 몇 가지 팁.

  1. 각 스마트폰 제조사마다 제공하는 앱을 쓰는 것이 속편함

    LG 폰에 데이터를 이전해 주는 LG 모바일 스위치
    앱이 설치돼 있는데, ‘LG폰 to LG폰’ 상황에서만 쓸 수 있는 듯하다. 삼성 폰이라면 Smart Switch 앱을 쓰면 되는 것처럼 샤오미 폰으로 옮길 때는 각 폰에 Mi Mover 앱을 설치해서 옮기는 방법이 편리하다.

    안드로이드 폰은 잘 쓰지 않아서 그런지 몰라도 처음에 안드로이드 자체에 내장된 ‘기기 설정’으로 연결해서 데이터를 복사해 보려고 했는데 연결이 잘 안 되더라.

    결론적으로 각 스마트폰 제조사에서 제공하는 전용 소프트웨어를 사용하는 그나마 속편하다는 결론.

  2. Google Family Link가 적용된 상태에서 기기 개발자 옵션 켜는 법.

    샤오미 폰에 기존의 다채로운 기본 앱들이 설치돼 있어서 찜찜하기도 하고 불필요해서 삭제하려고 보니 Google Family Link 때문에 개발자 옵션을 활성화할 수가 없더라.

    그래서 찾아보니 부모의 Google Family Link 앱에서 활성화하면 된다고 해서 찾아보니 아래와 같이 활성화하는 메뉴가 있어서 활성화할 수 있었다.

    개발자 옵션을 활성화한 후에 아래 글을 참조해서 불필요한 앱을 삭제했다.

이더리움 채굴 관련 훑어보기

이미 끝물이라고 평가받는 이더리움 채굴에 늦게나마 관심이 생겨서 조금 둘러본 바를 두서 없이 정리했다.

현재 이더리움(Ethereum)은 채굴 가능한 암호화폐 중 하나다. 이더리움을 채굴하는 기기로는 크게 채굴 전용 ASIC 채굴기나 8GB 이상의 메모리가 탑재된 그래픽카드가 있다. 그래픽카드를 여러 개 장착해서(2-way, 3-way, …) 채굴 시스템을 구성하는 경우도 있는데, 이때 여러 개의 그래픽카드를 장착하기 위해 라이저카드라는 것을 사용한다. 또한 그래픽카드에 따라 모니터와 연결하지 않으면 채굴 성능이 떨어지는 경우가 있는데, 이런 경우에 대비해 모니터와 연결한 것처럼 만들어주는 HDMI 더미 플러그라는 것을 쓰기도 한다.

그래픽카드마다 채산성(채굴 생산성)이 다르고, 채굴 때문에 그래픽카드 품귀 현상이 일어나 일부 그래픽카드 제조사에서는 LHR(Low Hash Rate)라고 해서 채굴 성능을 떨어뜨린 기능을 장착한 그래픽카드를 출시하기도 한다. 채산성이 낮은 LHR 버전은 채굴 가능한 버전에 비해 가격이 저렴한 편이다.

아래 링크에서 그래픽카드별 이더리움 채산성을 확인할 수 있다(Ethash 알고리즘 기준).

각 그래픽카드 장비 수를 입력하고 ‘계산하기’ 버튼을 누르면 시간당, 1일, 7일, 30일, 1년 채산성을 계산할 수 있고, 투자 대비 원금 회수 기간도 계산 가능하다.

이더리움을 채굴하려면 채굴 프로그램이 필요한데, 가장 많이 사용되는 프로그램은 피닉스마이너(PhoenixMiner)다. 채굴풀(Mining Pool)이라는 것도 있는데, 채굴풀에 대해서는 아래 글을 참고한다.

국내에서는 채굴풀로 마이닝풀허브(국내에서 운영)와 이더마인(Ethermine)이 가장 유명한 것 같다.

채굴만을 위해 만들어진 HiveOS라는 OS도 있다. 아래 URL에서 내려받아 USB에다 플래싱하고 부팅해서 설정하면 하드디스크 없이도 USB 자체적으로 부팅하고 그래픽카드를 이용해 채굴할 수 있다.

하이브OS를 이용할 경우 홈페이지에 가입해서 채굴 팜(Farm)을 생성하고, 각 팜 내에 채굴을 담당할 워커(Worker, 채굴용 그래픽카드가 장착된 PC)를 할당한다. 팜에 워커가 등록되면 플라이트 시트(Flight Sheet)를 워커에 할당하는데, 잘은 모르겠지만 이더마인 같은 채굴 풀에서 일감을 받아와 채굴을 진행하는 작업 내역을 의미하는 것 같다. 플라이트 시트를 생성할 때 코인 종류(이더리움 같은), 이더리움 지갑, 채굴풀(예: Ethermine), 마이너 프로그램(예: PhoenixMiner)를 지정하는 걸로 봐서 팜 내의 워커에게 어떤 채굴 작업을 할지 지정하는 것이라고 할 수 있다.

이더리움 지갑의 경우 MEW(MyEtherWallet)를 많이 사용하는데, 나중에 채굴된 이더리움을 국내 환전소로 가져올 때 수수료가 들기 때문에 지갑 주소로 아예 업비트 같은 거래소에서 입금용 지갑 주소를 생성해서 사용할 수 있다. 참고로 입금주소는 각 코인마다 설정할 수 있고, 종류를 동일하게 맞춰줘야 한다.

채굴을 시작하고 나서 아래와 같은 사이트에다 앞에서 만든 지갑 주소를 입력하면 얼마나 채굴이 이뤄졌는지 확인할 수 있다.

채굴은 전력을 많이 소모하기 때문에 전기요금에 유의할 필요가 있다. 하이브OS에서는 오버클록(Overclock)이라는 메뉴를 통해 각 워커별로 코어 클록, 최대 소비 전력, 메모리 클록, 팬 속도 등을 설정할 수 있다. 가령 아래 글을 참고하면 3060TI 그래픽카드의 경우 130W로 소비 전력을 제한하고 다른 값도 함께 설정해서 전력 대비 채굴 성능을 최적화할 수 있다. 전력 대비 성능 비율을 뜻하는 ‘전성비’라는 표현도 자주 등장하니 알아두자.

그래픽카드별로 채굴에 최적화된 설정이 다르고, 운영체제나 하드웨어 구성별로도 설정하는 값이 달라질 수 있으니 다른 분들이 정리해둔 세팅값을 참고하는 것도 좋겠다.

참고로 하이브OS는 앱도 제공하는데 어느 정도 세팅이 끝나면 앱에서 워커를 원격 조정하는 등 왠만한 작업을 대부분 처리할 있다는 편리함이 있다.

이리저리 대충 훑어보고 이해한 거라서 틀린 내용이 있을지도 모르겠다. ㅠ