컴퓨터와 잡동사니 자료

전세계에서 차단된 내 유튜브 영상을 살리고 싶었다. 그래서 난...

K66Google 2024. 2. 12. 22:06

유튜브의 까탈스러운 저작권 트집은 혀를 내두를 수준이다.

저작권 감지 기술 또한 기가 막힌 수준이라서, 모르는 노래의 제목을 알고 싶을 때 그냥 캡처 프로그램으로 녹화한 뒤 업로드해서 알아내는 꼼수도 진지하게 써먹을 수 있을 정도다.

다만 오늘 논하고 싶은 건 유튜브의 저작권 감지 기술에 대해서가 아니라, '음원 저작권으로 인해 전세계에서 차단된 내 유튜브 영상을 어떻게 하면 살릴 수 있는가'에 대해서다.

 

 

때는 2월 9일.

설날 연휴 첫 날에 스트리밍한 다시보기 영상이 전세계에서 차단되는 문제가 발생했다.

문제 원인은 스트리밍 도중 배경음으로 흘러나온 일부 노래들 때문이었다. 이런 일은 과거에 두 번 정도 겪은 적이 있었다.

첫번째는 영상 설명란에 기입한 타임스탬프 때문이었다. 그때는 우선 기존 영상을 다운로드 받은 뒤 재업로드했다. 그리고 설명 란이 아닌, 고정 댓글 쪽에 타임스탬프를 남기니 '전세계 차단' 문제는 발생하지 않았다.

두번째는 타임스탬프와 무관한, 말 그대로의 차단이었다. 그때는 유튜브 사이트에 내장된 '노래 음소거' 기능을 통해 해당 부분을 음소거 처리하는 것으로 해결하였다.

그리고 세번째가 바로 이번 사례다.

 

 

그러나 이번에는 '곡 바꾸기' 나 '노래 음소거' 기능도 쓰지는 못하는 경우였다.

'음악 재생목록에 해당하는 동영상이기 때문에 편집이 사용 중지되었습니다.' 라는 문구만 뜨고 비활성화 되어있는 것이다. 그럼 어떻게 해야 된단 말인가?

일단 온라인 상에서 조치를 하는 건 불가능하니, 해당 영상을 다운로드 받은 후 음소거 또는 BGM을 대체한 뒤 재업로드 하기로 하였다.

 

 

yt-dlp를 통해 유튜브 영상을 다운로드 받기로 한다. 다만 480p와 1080p... 이렇게 영상을 두 가지로 받았다.

만약 1080p 영상을 받아서 작업한 뒤 업로드 했는데, 또 전세계 차단이 걸리면 시간 낭비에 패킷 낭비가 되기 때문이다.

따라서 먼저 480p 영상을 작업해서 업로드하고, 그게 차단되지 않으면 1080p 영상에도 동일한 작업을 해서 업로드한다. 그리고 1080p 영상 쪽만 공개 처리하는 방식을 택하기로 한다.

참고로 이때 yt-dlp의 다운로드 명령줄에는 --cookies-from-browser [유튜브 로그인된 브라우저명] 이 필수다. 전세계 차단이 걸린 영상은 나만 접근할 수 있으니까, 내 로그인 정보가 있어야 해당 영상을 다운로드 받을 수 있기 때문이다.

 

 

어쨌든 영상은 모두 다운로드 받았다. 하지만 작업을 시작하기 전에...

정말로 타임스탬프와는 무관한 문제인지 검증을 해보고 싶었다.

먼저 1번 실험이다. 영상 댓글에 타임스탬프를 작성하고, 고정 댓글이 아닌 일반 댓글로 두었다.

'어쩌면 유튜브가 고정 댓글을 동영상 설명란과 똑같이 간주해서 저작권 단속이 까다로워진 게 아닐까' 하는 의심이 들어서였다.

 

 

하지만 결과는 전세계 차단이었다.

 

 

2번 실험영상을 업로드할 때, '자동 챕터 및 주요 순간 허용' 을 체크 해제한 상태로 올리는 것이다.

이 옵션이 켜지면 저작권 단속이 까다로워지는 게 아닐까 하는 의심이 들었기 때문이다.

 

 

그러나 이것도 전세계 차단이었다.

 

 

3번 실험채널 주인 계정이 아닌 다른 계정으로 댓글에 타임스탬프를 찍어놓는 것이다.

계정에 따라 저작권 단속 강도에 차등을 두는게 아닌지 확인해보고 싶었기 때문이다.

 

 

이것도 결과는 전세계 차단이었다.

 

 

4번 실험아예 댓글에 타임스탬프를 작성하지 않는 것이다.

타임스탬프의 시간 링크가 저작권 단속 강화에 영향을 주는 게 아닌가라는 의심이 들었기 때문이다.

 

 

하지만 이것도 결과는 '전세계 차단' 이었다.

네 번의 실험을 통해... 이번 문제는 타임스탬프와 아무런 관련이 없다는 결론에 다다르게 되었다.

이렇게 해결이 되었다면 굳이 영상 편집까지 할 필요가 없는데... 귀찮게 되었다.

 

결국 나는 전세계 차단을 유발하는 부분의 음성을 교체하는 프로그램을 짜기로 하였다.

 

 

프로그램의 이름은... 그냥 S.Y.M.C (Shit Youtube Music Copyright)로 정했다.

다만 이 프로그램 내에서 모든 작업을 다 해주는 게 아니라... 동영상 경로, 수정할 시간대, 대체 BGM을 입력 받은 뒤 ffmpeg에게 작업을 시키는 것 뿐이다. 말 그대로 편의성에 목적을 둔 프로그램이다.

하지만 이 프로그램 하나 제대로 동작시키게 하려고 거의 몇 시간을 쏟아부었다... 관련 소스 코드도 찾아야 하고... 영상에서 추출한 오디오 파일이 영상 러닝타임과 맞지 않는 문제가 있어서 애를 먹기도 했다. 다행히도 mp3 파일이 아닌 m4a 파일로 추출하니까 러닝타임이 일치하게 되었다.

이로 인해 대체 BGM도 mp3가 아닌 m4a 파일을 사용하게 되었다.

 

 

그렇게 이 프로그램을 통해 BGM 대체 작업을 했고, 이렇게 작업된 영상을 유튜브에 업로드하였다.

하지만... 또 전세계 차단을 당하고 말았다. 아직 차단을 유발하는 노래가 남아있었기 때문이다.

문제의 노래를 스트리밍 도중 여러 시점에서 틀면, 그 중 한 시점만 유튜브가 시간대를 알려주는 거니까... 결국 여러 번 업로드할 수 밖에 없는 것이다.

 

 

새로 감지된 시간대까지 추가해서 2차 작업을 한다.

그리고 2차 작업된 영상을 업로드하고... 밤이 늦어서 그만 자기로 한다.

 

 

자고 일어나서 확인해보니 '차단됨'이 뜨지 않았다.

휴... 드디어 '전세계 차단' 마수에서 벗어나게 된 건가.

이제 1080p 영상에 다시 작업하는 일만 남았다. 현재는 업로드 및 저작권 검토를 빠르게 하기 위해 480p 영상에 작업하고 있었기 때문이다.

 

...똑같이 작업한 1080p 영상을 업로드 하였고, 해당 영상도 멀쩡한 걸 확인했다.

여기서 영상을 공개 상태로 바꾸면... 마침내 모든 과정이 끝나게 된다. '전세계 차단'된 내 유튜브 영상을 살리기 위해 참 많은 고생을 했다. 하여간 유튜브에겐 도저히 정이 갈래야 갈 수가 없다.

참고로 작업된 영상여기에서 볼 수 있다. 어떤 식으로 음원이 교체됐는지 확인해보셔도 된다. (영상 댓글에 교체된 시간대를 표시해두었다.)

또한, 프로그램여기 게시물에서 배포하기로 한다.

그럼 이만...

 

 

※ 참고 페이지

* 오디오 트랙 대체 연구
https://stackoverflow.com/questions/32988106/ffmpeg-replace-part-of-audio-in-mp4-video-file
https://json2video.com/how-to/ffmpeg-course/ffmpeg-add-audio-to-video.html
https://superuser.com/questions/1250147/how-to-accurately-split-and-combine-videos-with-ffmpeg-respecting-inpoint-outpoi

오디오 트랙만 추출한 뒤, concat 작성 후 재인코딩 후.. 다시 기존 동영상과 합치는 식으로 해본다.

* 시간 포맷의 초 변환
https://stackoverflow.com/questions/45589909/vb-convert-mmss-timecode-to-seconds

* m4a 관련
https://stackoverflow.com/questions/16374028/unable-to-convert-mp3-to-m4a-using-ffmpeg
https://stackoverflow.com/questions/9913032/how-can-i-extract-audio-from-video-with-ffmpeg