본문으로 건너뛰기

X 게시물에서 어떤 MP4를 고를까

X는 같은 동영상을 여러 MP4 화질로 공개합니다. 해상도는 같으면서 비트레이트가 다른 경우가 많아, 목록의 맨 위 행이 항상 원하는 파일은 아닙니다.

게시물 링크를 붙여넣으면 X가 나열한 동영상 화질을 해상도가 높은 순으로 받습니다. 그 순서는 출발점일 뿐 결론이 아닙니다. 해상도는 프레임 크기일 뿐이고, 같은 프레임 크기의 두 파일도 매초 화면에 얼마나 많은 데이터가 들어가는지에서 크게 다를 수 있습니다.

리졸버가 읽는 것

이 작업에 X는 로그인을 요구하지 않습니다. 리졸버는 임베드 타임라인이 쓰는 것과 같은 서명 토큰 방식을 사용해 X의 공개 신디케이션 엔드포인트(cdn.syndication.twimg.com/tweet-result)에 게시물을 요청합니다. 응답에는 게시물의 텍스트, 작성자, 그리고 X가 해당 게시물에 보관한 모든 MP4 화질이 담긴 videos 배열이 들어 있습니다.

동영상과 GIF만 남습니다. X에서 움직이는 GIF는 MP4 파일로 전달되므로, GIF 게시물은 소리 없는 동영상으로 다운로드됩니다. 플랫폼이 저장한 것이 정확히 그렇기 때문입니다. 유일한 동영상이 라이브 방송이거나 X가 먹스된 MP4를 전혀 반환하지 않는 게시물은 no_video로 답합니다.

레이블은 어떻게 만들어지는가

마지막 항목이 중요합니다. X의 화질은 매끄러운 사다리가 아닙니다. 한 게시물이 낮은 비트레이트의 1280픽셀 파일과 훨씬 높은 비트레이트의 720픽셀 파일을 함께 가질 수 있습니다. 넓은 파일은 화면에서 더 크지만, 작은 파일이 움직임에서 더 나아 보일 수 있습니다. 픽셀마다 더 많은 비트를 쓰기 때문입니다.

구체적인 비교

행프레임무엇에 좋은가
낮은 비트레이트의 1280×720넓은 프레임, 픽셀당 적은 데이터전체 프레임이 필요하고 다소 부드러운 움직임을 감수할 수 있는 화면.
높은 비트레이트의 720×720정사각형 프레임, 픽셀당 많은 데이터더 깔끔한 움직임과 디테일, 그러나 더 작은 화면.
480×270 (모바일 컷)작은 프레임오래된 일부 게시물에만 있는 화질. 크기를 감수하거나 건너뛰세요.

실용적인 규칙 하나: 다음 행과 비교해 눈에 띄게 뭉개 보이지 않는다면 가장 넓은 행을 고르세요. 확신이 안 서면 두 개를 받아 파일 크기를 비교하세요. 절반 프레임 크기에서 두 배로 무거운 파일은 비트를 움직임과 디테일에 쓰고 있는 것입니다.

다운로드가 진행 표시줄이 아니라 페이지 이동인 이유

동영상 파일은 video.twimg.com에 있고, 이 호스트는 이런 요청에 CORS 헤더를 보내지 않습니다. 따라서 페이지가 스크립트로 바이트를 읽을 수 없어, 다운로드 버튼이 CDN 링크를 직접 열고 브라우저가 파일을 저장합니다. 장점은 동영상 중 아무것도 이 사이트를 거치지 않는다는 것이고, 단점은 퍼센트 카운터가 없다는 것입니다.

다운로드할 수 없는 것

보호된 계정, 삭제된 게시물, 연령 제한 게시물은 오류를 반환합니다. X 자체가 익명 독자에게서 이를 감추기 때문입니다. 리졸버는 절대 로그인하지 않고 그 제한을 우회하지도 않습니다. video.twimg.com URL도 단독으로 붙여넣을 수 없습니다. 화질을 명시하는 것은 게시물 페이로드뿐이므로 리졸버는 게시물 링크에서 시작합니다.

요약

질문

왜 맨 위 행이 가장 좋아 보이지 않나요?

목록이 프레임 너비로 정렬되고, 넓은 프레임이 반드시 더 무거운 파일은 아니기 때문입니다. 더 작은 행이 픽셀당 더 많은 비트를 담으면 움직임에서 더 깔끔해 보일 수 있습니다. 맨 위 행이 이긴다고 단정하기 전에 파일 크기를 비교하세요.

보호된 X 계정의 동영상을 다운로드할 수 있나요?

아니요. X는 보호된 게시물을 익명 독자에게 공개하지 않으며, 이 도구는 로그인하거나 이를 우회하지 않습니다. 공개 게시물만 확인됩니다.

X 다운로드에는 왜 진행 표시줄이 없나요?

`video.twimg.com`이 CORS 헤더를 보내지 않아 페이지가 동영상 바이트를 읽을 수 없기 때문입니다. 버튼이 CDN 링크로 이동하고 브라우저가 파일을 직접 다운로드합니다.

이 글의 도구

모든 글