터미널에서 YouTube 동영상을 전사하는 방법

4545 단어 terminalyoutubeapi
내부 Deepgram Slack 작업 공간에는 사람들이 터미널에서 달성한 재미있고 엉뚱한 일을 공유할 수 있는 채널이 있습니다( #bash-hall-of-fame ). 5년 전, CEO Scott은 YouTube 동영상에서 오디오만 다운로드할 수 있는 멋진 작은 스니펫을 공유했습니다. 오늘은 여전히 ​​작동하는 코드 조각을 사용하여 YouTube 비디오에서 오디오를 다운로드한 다음 Deepgram의 음성 인식 API를 사용하여 기록하는 방법을 보여 드리겠습니다.

단계는 우리 게시물과 매우 유사하지만 완전히 터미널에 있습니다.

이 자습서가 작동하려면 , ffmpeg jq 을 다운로드해야 합니다. macOS를 사용하고 homebrew가 설치되어 있는 경우 brew install youtube-dl , brew install ffmpegbrew install jq 입니다. 또한 Deepgram API 키get one here가 필요합니다.

youtube_dl을 사용하여 YouTube 비디오에서 오디오 다운로드



다음 YouTube ID를 사용합니다: 9NZDwZbyDus . Scott의 원본 스니펫부터 시작:

youtube-dl 9NZDwZbyDus --extract-audio --audio-format wav -o 9NZDwZbyDus.wav


동일한 값을 두 번 사용하는 경우 동영상 ID를 변수로 추상화해 보겠습니다.

VIDEO_ID=9NZDwZbyDus; youtube-dl $VIDEO_ID --extract-audio --audio-format wav -o $VIDEO_ID.wav


Deepgram으로 전사



이제 로컬 파일이 있고 파일 형식을 알고 있으므로 cURL을 사용하여 Deepgram에서 트랜스크립트를 가져올 수 있습니다.

curl https://api.deepgram.com/v1/listen?punctuate=true -H "Authorization: Token YOUR_DEEPGRAM_API_KEY" -H "Content-Type: audio/wav" --data-binary @${VIDEO_ID}.wav

jq를 사용하여 성적표 텍스트만 추출하고 파일에 저장:

curl https://api.deepgram.com/v1/listen?punctuate=true -H "Authorization: Token YOUR_DEEPGRAM_API_KEY" -H "Content-Type: audio/wav" --data-binary @${VIDEO_ID}.wav | jq '.results.channels[0].alternatives[0].transcript' > "$VIDEO_ID.txt"


오디오 파일 삭제



마지막으로 오디오 파일이 더 이상 필요하지 않으면 삭제합니다.

rm $VIDEO_ID.wav


모든 것을 하나로 모으기



이 스크립트에 변수를 처음 도입했을 때 선언과 cURL 명령을 세미콜론으로 구분했습니다. 모든 후속 단계에서 정확히 동일하게 수행할 수 있습니다. 이 프로젝트의 한 줄은 다음과 같습니다.

VIDEO_ID=EmIhbFeJgiE; youtube-dl ${VIDEO_ID} --extract-audio --audio-format wav -o ${VIDEO_ID}.wav; curl https://api.deepgram.com/v1/listen\?punctuate\=true -H "Authorization: Token YOUR_DEEPGRAM_API_KEY" -H "Content-Type: audio/wav" --data-binary @${VIDEO_ID}.wav | jq '.results.channels[0].alternatives[0].transcript' > "$VIDEO_ID.txt"; rm "$VIDEO_ID.wav"


질문이 있으시면 알려주세요. 최선을 다해 도와드리겠습니다!

좋은 웹페이지 즐겨찾기