세로로 세운 모니터로 가로 영상을 보면 화면 위아래가 검은 띠로 찬다. 세로로 찍었는데 옆으로 누운 채 올라온 영상은 고개를 돌려야 보인다. YouTube Rotate & Fill Video는 그 두 가지를 고치는 크롬 확장이다. 직접 만들어 쓰고 있다.

두 버튼은 유튜브 플레이어의 전체화면 버튼 옆에 붙는다. 꽉 채우기는 한 번 켜 두면 다음 영상에도 이어지고, 회전은 그 영상에만 적용된다. 버튼은 유튜브 기본 버튼과 구별되게 하늘색으로 그렸고, 마우스를 올리면 이름이 뜬다.

유튜브에서만 동작한다. 다른 사이트에 끼워 넣은 유튜브 플레이어에서도 된다. 저장하는 것은 꽉 채우기를 켰는지 하나뿐이고, 아무 데이터도 모으거나 밖으로 보내지 않는다. YouTube·Google과는 관계없는 개인 도구다.
꽉 채우기는 보통 전체화면에서만 되고, 그마저 영상 사이트마다 있기도 하고 없기도 한 기능이다. 창 크기에 맞춰서도 동작하게 하고 싶었다. 같은 기능을 가진 확장이 있기는 했지만 유료 판에서만 쓸 수 있었다.
회전은 나중에 더했다. 다른 확장으로 돌려 둔 영상에 꽉 채우기를 켜면 회전이 풀려 버렸다. 두 확장이 영상의 같은 자리를 서로 덮어쓰고 있었다. 그래서 회전을 직접 넣고, 돌리기와 채우기를 한 번에 계산하게 했다.
처음에는 스토어에 올리지 않고 내 PC에서만 쓸 생각이었다. 이름도 「Fill the Screen」이었고 어느 사이트에서나 동작했다. 써 보니 잘 돼서, 유튜브 전용으로 좁히고 이름을 바꿔 스토어에 올리기로 했다.
유튜브에서는 처음 생각한 방법이 통하지 않았다. 유튜브는 영상 요소 자체를 영상 비율에 맞춰 줄여 두기 때문에, 「영상으로 채워라」라는 설정 한 줄로는 검은 띠가 그대로 남았다. 그래서 영상을 직접 키우고 옮겨 플레이어를 덮게 했다.
버튼에 마우스를 올려도 이름이 뜨지 않은 적도 있다. 유튜브의 말풍선은 유튜브가 만든 버튼에만 뜨고, 직접 그린 말풍선은 플레이어 컨트롤 줄에 잘려 화면에 보이지 않았다. 말풍선을 플레이어에 따로 붙여서 해결했다.
홍보 그림도 한 번 다시 그렸다. 첫 판은 가로 풍경을 돌려 그렸더니 산이 옆으로 누워 어색했다. 그래서 키 큰 나무가 옆으로 누워 있다가 바로 서는 그림으로 바꿨다.
댓글을 쓰려면 로그인이 필요합니다.
세 가지만 확인할게요. 하나, 확장이 유튜브 플레이어 DOM에 접근하면서 혹시 사용자의 시청 기록이나 계정 정보 같은 민감한 데이터에 닿을 가능성은 없나요? 둘, 스토어 올릴 때 권한 요청 화면에서 사용자가 「YouTube의 모든 데이터 읽기 및 수정」 같은 광범위 권한을 요청받으면 설치를 꺼릴 수 있으니, 꼭 필요한 권한만 선언했는지 체크하시면 좋겠어요. 셋, 글에서 「아무 데이터도 모으거나 밖으로 보내지 않는다」고 명확히 하셨는데, 스토어 설명에도 그 부분을 강조하시면 사용자 신뢰도 높을 것 같습니다.
하나, 시청 기록이나 계정 정보에는 닿지 않습니다. 확장이 유튜브 화면에서 하는 일은 영상 요소와 플레이어의 크기를 재고, 회전·꽉 채우기 버튼을 붙이고, 영상에 확대·회전을 거는 것뿐입니다. 페이지의 글이나 계정 정보를 읽는 코드가 없고, 어디로도 데이터를 보내는 코드가 없습니다. 둘, 권한은 꼭 필요한 두 가지만 선언했습니다. youtube.com(그리고 퍼가기용 youtube-nocookie.com)에서 플레이어에 버튼을 붙이는 권한과, 꽉 채우기 켜짐 여부 하나를 저장하는 권한입니다. 처음에는 모든 사이트에서 동작하게 만들었는데, 스토어에 올리면서 유튜브 전용으로 범위를 줄였습니다. 설치할 때 「youtube.com의 데이터 읽기 및 변경」 안내가 보이는 것은 플레이어에 버튼을 붙이려면 피할 수 없는 부분입니다. 방문 기록·탭·쿠키 같은 다른 권한은 요청하지 않습니다. 셋, 스토어 설명에도 「아무 데이터도 모으지 않고 어디로도 보내지 않는다」를 개인정보 항목으로 넣어 두었고, 스토어의 개인정보 보호 관행 신고에도 수집하는 데이터가 없다고 신고했습니다.
찾았다! 이렇게 하면 깨질 것 같아요: 1) 꽉 채우기 켠 채로 재생목록 다음 영상 넘어감 2) 그 영상이 세로로 누운 영상이라 회전이 필요한 상황 3) 회전은 영상마다 안 이어진다고 하셨으니 꽉 채우기만 살아있는 상태로 비율 계산이 꼬이지 않을까요. 창 크기 줄였다 늘렸다 하면서 꽉 채우기 상태 유지되는지도 궁금하네요.
유튜브가 영상 요소를 비율대로 줄여둬서 CSS 한 줄로 안 됐다는 부분이 흥미롭네요. 영상을 직접 키우고 옮기는 방식이면 영상 해상도나 종횡비가 바뀔 때마다 계산을 다시 해야 할 텐데, 그 리사이즈 감지는 ResizeObserver 같은 걸로 처리하신 건가요?