project:alternativeradiorecorer
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
project:alternativeradiorecorer [2016/11/19 16:29] – changwoo | project:alternativeradiorecorer [2016/11/19 17:14] (현재) – [패키지 설치] changwoo | ||
---|---|---|---|
줄 5: | 줄 5: | ||
예를 들어 [[http:// | 예를 들어 [[http:// | ||
+ | |||
+ | ===== 시나리오 ===== | ||
+ | 어떤 사이트에서 제공하는 오디오를 녹음하려고 합니다. 그런데 안타깝게도 이 주소를 파악하기가 쉽지 않다고 합니다. 음원을 재생하는 모듈이 어떤 바이너리(이를테면, | ||
+ | |||
+ | 이런 음원의 주소를 추출하려고 애쓰기 보다는, 아예 [[http:// | ||
+ | |||
+ | ===== 준비물 ===== | ||
+ | 실행 중인 리눅스 기반 헤드리스 서버가 있어야 합니다(물론 데스크탑도 무방합니다). 저는 우분투를 기준으로 설명합니다. | ||
+ | ===== 과정 ===== | ||
+ | |||
+ | ==== 패키지 설치 ==== | ||
+ | 아래 목록은 시스템에 설치될 패키지들입니다. | ||
+ | * pulseaudio | ||
+ | * pulseaudio-utils | ||
+ | * chromium-browser | ||
+ | * adobe-flashplugin | ||
+ | * xvfb | ||
+ | * libgconf-2-* | ||
+ | |||
+ | 아래 목록은 별도로 다운로드 받기를 권장합니다. | ||
+ | * chromedriver | ||
+ | |||
+ | 아래 목록은 pip를 통해 다운로드 받습니다. | ||
+ | * selenium | ||
+ | * pyvirtualdisplay | ||
+ | |||
+ | 브라우저는 물론 파이어폭스를 이용할 수도 있습니다. 그러나 제가 문서를 작성하는 시점에서 파이어폭스 드라이버는 동작에 필요한 일부 기능이 제대로 동작하지 않는 문제가 있었습니다. 이러한 문제는 차후 고쳐질 수 있으니 사용시 문제가 없다면 변경해도 무방합니다. | ||
+ | |||
+ | 크롬 드라이버는 우분투 저장소의 것보다는 [[https:// | ||
+ | |||
+ | ==== PulseAudio 세팅 ==== | ||
+ | |||
+ | ==== 음원 녹음 테스트 ==== | ||
+ | |||
+ | ==== 무음 구간 스킵 ==== | ||
+ | |||
+ | ==== 셀레늄 스크립트 ==== | ||
+ | |||
+ | ===== 마치며 ===== | ||
+ | |||
+ | 사실 열심히 생각해서 구현하고 보니 EBS 외국어 라디오 채널의 URL이 버젓이 공개되어 있어 조금 허탈했습니다. 역시 세상에는 저보다 뛰어나신 분들이 많아요. :-) | ||
+ | |||
+ | 그치만 이 방법은 이론상 웬만한 웹사이트의 음원을 거의 다 녹음 가능한 방법입니다. 게다가 사운드 시스템에서 흘러가는 디지털 스트림을 리다이렉션해서 저장하는 거라 라인 인/아웃 방법의 녹음과는 다르게 음질의 열화도 거의 일어나지 않습니다. 인코딩시 발생하는 열화 외에는 말이죠. | ||
+ | |||
+ | 사실 이런 원리는 여러분들이 흔히 사용하는 녹음기와 다를 바 없습니다. 또 셀레늄을 이용한 웹브라우저 자동화는 소프트웨어 개발 테스트 때 많이 사용됩니다. 사람이 일일이 하기 힘든 소프트웨어의 테스트를 빠르고 정확하게 대신하기 위해 사용됩니다. 예를 들면, UI 중 어떤 버튼을 눌렀을 때 기대한 대로의 반응이 나오는가 나오지 않는가, 어떤 링크를 클릭했을 때 올바르게 페이지가 넘어가는가, | ||
+ | |||
+ | 이 둘을 서로 합쳐 보면 요런 것도 나올 수 있구나 하는 게 재미있어 한 번 만들어 봤습니다. [[project: | ||
+ | |||
project/alternativeradiorecorer.1479572976.txt.gz · 마지막으로 수정됨: 2016/11/19 16:29 저자 changwoo