트위터 영상 다운로드 안 될 때 확인할 것들

트위터(X)에서 영상이 저장되지 않는다면 원인은 대체로 셋 중 하나입니다. 계정이 비공개이거나, 글이 이미 삭제됐거나, 화질 옵션이 왜 그렇게 나뉘어 있는지를 오해하고 있는 경우입니다. 도구가 고장 난 게 아니라 X가 그 트윗을 어떤 상태로 갖고 있는지의 문제인 경우가 대부분입니다.

이 글은 X 영상이 실제로 어떤 구조로 저장되고 전달되는지, 화질이 왜 여러 개로 나뉘는지, 움직이는 GIF로 보이는 트윗은 무엇이 다른지를 공개된 사실을 근거로 정리합니다. 도구를 쓰든 안 쓰든 저장 가능 여부를 가르는 기준 자체는 동일합니다. 원리를 한 번 이해해두면 다음부터는 어떤 트윗이 되고 안 되는지 화면에 넣어보지 않아도 미리 짐작할 수 있게 됩니다.

요약 ① X 영상 저장이 안 되는 대부분의 원인은 비공개 계정이나 삭제된 글이며, 도구나 화질 설정의 문제가 아닙니다. ② 화질이 여러 개로 뜨는 이유는 X가 영상을 업로드받는 시점에 미리 여러 해상도로 인코딩해 저장해 두기 때문입니다. ③ 움직이는 GIF로 보이는 트윗도 별도 분류로 함께 지원되며, t.co 단축링크는 자동으로 원래 주소로 펼쳐진 뒤 처리됩니다.

트위터 영상이 저장되지 않는다고 느끼는 순간들

마음에 드는 영상 트윗을 발견하고 저장하려는 순간부터 막힙니다. 영상 위에서 마우스 오른쪽 버튼을 눌러도 "동영상을 다른 이름으로 저장" 같은 항목이 아예 안 뜨거나, 떠도 눌러보면 빈 파일이거나 재생이 안 되는 경우가 흔합니다. 이미지처럼 우클릭 한 번으로 끝나지 않는다는 걸 이때 알게 됩니다.

이건 우연이 아닙니다. 브라우저가 영상을 보여주는 방식 자체가 사진과 다릅니다. 사진은 화면에 파일 하나가 통째로 그려지지만, 영상은 재생에 필요한 조각들을 순차적으로 내려받으며 재생하는 플레이어 위에 얹혀 있습니다. 그래서 브라우저의 기본 "저장" 기능이 파일 전체가 아니라 그 순간까지 재생된 일부만 붙잡거나, 아예 저장 항목 자체를 제공하지 않는 경우가 생깁니다.

이 때문에 "분명 재생은 잘 되는데 왜 저장이 안 되지"라는 의문이 자연스럽게 따라옵니다. 눈으로 보이는 재생과 파일로 내려받는 저장은 브라우저 입장에서 전혀 다른 동작이기 때문인데, 이 차이를 모르면 마치 영상 트윗만 유독 까다롭게 막아둔 것처럼 느껴지기 쉽습니다.

그래서 검색해서 "트위터 영상 다운로드" 사이트를 몇 개 열어봅니다. 그런데 어떤 사이트는 되고 어떤 사이트는 안 됩니다. 같은 트윗 주소를 넣었는데 한쪽은 화질 목록이 뜨고 다른 쪽은 오류만 뜨는 경험을 하면, 사이트마다 성능 차이가 있나 싶어 계속 다른 곳을 찾아다니게 됩니다.

이 과정에서 겪는 또 다른 불편함도 있습니다. 검색 결과 상위에 뜨는 사이트 중 일부는 화면 곳곳에 "다운로드" 모양의 버튼이 여러 개 있어서, 어느 버튼이 진짜 저장 버튼이고 어느 게 광고인지 구분하는 데만 시간이 걸리기도 합니다. 주소를 넣고 결과를 기다리는 짧은 시간 동안 화면이 계속 바뀌면 처음 써보는 사이트일수록 이게 정상적인 동작인지조차 판단하기 어렵습니다.

화질 목록이 뜨더라도 다음 혼란이 시작됩니다. 왜 어떤 트윗은 1080p까지 있는데 어떤 트윗은 720p가 최고 화질인지, 화질을 낮게 고르면 저장이 더 빨라지는 건지, 아니면 그냥 용량만 작아지는 건지 감이 안 옵니다. 화질 옵션이 "우리가 인코딩해서 만들어주는 값"처럼 보이지만, 실제로는 전혀 다른 원리로 정해져 있습니다.

즐겨보는 계정의 영상을 저장하려다 아예 막히는 경우도 있습니다. 그 계정이 비공개(잠금) 계정이면 주소를 아무리 정확히 넣어도 화질 목록 자체가 뜨지 않습니다. 화제가 됐던 영상을 뒤늦게 찾아보려는데 이미 삭제된 글이라 아무 사이트에서도 처리되지 않는 경험도 자주 발생합니다. 분명 어제까지 봤던 트윗인데 오늘은 "게시물을 찾을 수 없습니다"만 뜨는 상황을 겪어본 사람이라면 이 답답함을 알 것입니다.

모바일 앱에서 시도했을 때도 비슷한 혼란이 생깁니다. 공유 버튼을 눌러 "링크 복사"로 주소를 가져왔는데, 이 주소가 눈에 익은 x.com 주소가 아니라 t.co로 시작하는 낯선 짧은 주소라서 "이걸 그대로 붙여넣어도 되는 건가" 하고 멈칫하게 됩니다. 데스크톱 브라우저의 주소창에 뜨는 긴 주소와 앱의 공유 버튼으로 복사한 주소가 다르게 생겼다는 것만으로도 뭔가 잘못 넣은 게 아닌가 싶어지는 것입니다.

여기에 더해, 타임라인에서 자동으로 반복 재생되는 "GIF"라고 표시된 트윗을 저장하려 할 때도 헷갈림이 생깁니다. 분명 재생 버튼이 없고 움직이는 그림처럼 보이는데, 이것도 일반 영상 트윗과 같은 방식으로 저장되는 건지 확신이 안 서는 경우가 많습니다. 파일 확장자가 진짜 .gif일지 아니면 다른 형식일지도 궁금해지지만, 겉으로 보이는 재생 방식만으로는 판단하기 어렵습니다. 이런 경험들이 겹치면서 "트위터 영상 저장이 원래 잘 안 되는 기능인가"라는 오해로 이어지기 쉽습니다.

휴대폰에서 화면을 손가락으로 길게 눌러 저장을 시도해보는 경우도 있습니다. 사진은 이 방법으로 저장되지만 영상은 대부분 반응이 없거나 공유 메뉴만 뜨고 끝납니다. 결국 "왜 사진은 되는데 영상은 안 되지"라는 의문이 남게 되고, 이게 트위터 영상만 유독 저장하기 어렵다는 인상으로 굳어지는 계기가 되곤 합니다.

공식 화면과 브라우저 도구로 직접 확인하는 방법

X는 웹 화면에서 영상에 대해 별도의 "다운로드" 버튼을 제공하지 않습니다. 그래서 도구 없이 확인하려면 브라우저 자체의 개발자 도구를 이용해 실제로 어떤 파일이 오가는지 눈으로 보는 방법이 있습니다. 순서는 다음과 같습니다.

  1. 저장하려는 트윗의 주소를 브라우저 주소창에 붙여넣어 실제 트윗 페이지를 엽니다. 공유 버튼으로 복사한 t.co 단축 주소를 넣어도 브라우저가 알아서 실제 트윗 페이지로 이동시켜 줍니다.
  2. 키보드에서 F12(또는 Cmd+Option+I)를 눌러 개발자 도구를 열고, 상단 탭 중 "네트워크(Network)"를 선택합니다.
  3. 요청 목록 위쪽 필터 칸에 "mp4"라고 입력해 영상 관련 요청만 걸러냅니다.
  4. 트윗 안의 영상 재생 버튼을 누릅니다. 그러면 필터로 걸러둔 목록에 실제 영상 파일 주소들이 나타납니다.
  5. 목록에 여러 해상도의 주소가 함께 나열되는 걸 확인할 수 있습니다. 그중 원하는 항목을 새 탭에서 열고, 화면을 우클릭해 "다른 이름으로 저장"을 실행하면 파일이 내려받아집니다.

이 방법은 어디까지나 공개된 트윗에만 통합니다. 애초에 비공개 계정이거나 삭제된 글이면 트윗 페이지 자체가 열리지 않거나 "이 게시물을 찾을 수 없습니다"로 표시되므로, 개발자 도구를 열어봐도 영상 파일 요청 자체가 생기지 않습니다. 움직이는 GIF로 표시되는 트윗도 같은 방식으로 개발자 도구의 네트워크 탭에서 파일 요청을 찾아 저장할 수 있습니다.

브라우저마다 메뉴 이름과 위치가 조금씩 다르다는 점도 알아두면 좋습니다. 크롬과 엣지는 "검사(Inspect)"를 눌러도 같은 화면이 열리고, 사파리는 환경설정에서 "개발자용 메뉴 보기"를 먼저 켜야 같은 기능이 메뉴에 나타납니다. 어떤 브라우저든 결국 "네트워크 요청 목록"이라는 같은 화면을 보게 되므로 명칭에 얽매일 필요는 없습니다.

찾아낸 여러 해상도의 주소는 파일명이나 요청 정보 안에 가로·세로 픽셀 수치가 함께 표시되는 경우가 많아서, 그 숫자를 비교하면 어떤 게 더 높은 화질인지 가늠할 수 있습니다. 다만 항목이 여러 개일 때 하나하나 눌러 재생해보고 화질을 눈으로 비교하는 건 상당히 번거로운 일입니다.

이 방법으로도 확인되지 않는 부분이 있습니다. 저장 대상이 일반 영상 트윗인지, 여러 화질이 아예 하나뿐인 트윗인지, GIF로 분류된 트윗인지를 네트워크 탭의 요청 목록만 보고 한눈에 구분하기는 쉽지 않습니다. 요청이 여러 건 섞여 있으면 어떤 게 실제 재생 파일이고 어떤 게 미리보기용 썸네일 요청인지 걸러내는 데도 시간이 걸립니다.

사진과 영상이 함께 붙은 트윗이라면 더 헷갈립니다. 필터에 mp4를 걸어도 화질별 영상 파일 여러 개가 한 번에 잡히다 보니, 파일명이나 요청 순서만 보고는 어느 게 최고 화질인지 바로 구분되지 않는 경우가 많습니다. 결국 하나씩 열어서 재생해보며 화면 크기를 비교하는 수작업이 남습니다.

다만 매번 이 순서를 반복하는 건 번거롭습니다. 개발자 도구를 열고, 필터를 걸고, 재생 버튼을 눌러야 요청이 잡히고, 여러 해상도 주소 중 어떤 게 몇 화질인지는 직접 재생해보며 눈으로 비교해야 합니다. 트윗 하나 저장하는 데 이 과정을 매번 거치는 건 시간이 꽤 걸리고, PC가 아닌 휴대폰에서는 개발자 도구 자체를 열기 어려워 이 방법을 그대로 쓰기도 힘듭니다.

이 방법을 시도하기 전에 미리 알아두면 좋은 것들도 있습니다.

  • 트윗 페이지가 아예 열리지 않거나 "게시물을 찾을 수 없습니다"로 표시된다면, 개발자 도구를 열어봐도 소용이 없습니다. 비공개 계정이거나 삭제된 글이라는 뜻입니다.
  • 로그인한 상태에서 이 방법을 시도했다면, 로그아웃하거나 시크릿(비공개) 창에서 다시 열어 확인해보는 게 좋습니다. 로그아웃 상태에서도 똑같이 파일 요청이 잡혀야 그 글이 실제로 공개 상태라는 뜻이기 때문입니다.
  • 요청 목록에 mp4가 여러 개 잡혔는데 재생해도 다 비슷해 보인다면, 파일을 저장한 뒤 속성이나 정보 보기로 실제 해상도를 확인하는 게 가장 정확합니다.
X(트위터) 영상 다운로드 — 화질 선택 저장

로그인 없이 트윗 주소만 넣으면 화질별로 골라 MP4로 저장합니다. 완전 무료입니다.

화질이 여러 개인 이유, 그리고 비공개·삭제된 글이 막히는 이유

여기서부터는 왜 이런 차이가 나는지를 구조로 설명합니다. 앞서 확인한 사실만 근거로 삼고, 새로운 수치나 정책을 지어내지 않습니다. 다섯 갈래로 나눠서 순서대로 짚어보면, 앞서 절1에서 나열한 헷갈림들이 사실은 전부 같은 뿌리에서 나온다는 걸 알 수 있습니다.

공개 신디케이션 API를 사용합니다

cdn.syndication.twimg.com이라는 주소는 X가 언론사나 블로그가 자기 페이지에 트윗을 임베드할 때 쓰도록 공개해 둔 신디케이션 API입니다. 뉴스 기사 중간에 트윗 하나가 카드 형태로 삽입돼 있는 걸 본 적이 있다면, 그 화면을 그리는 데 쓰이는 바로 그 통로입니다. 이 API의 핵심은 트윗 고유 번호(트윗 ID)만 있으면 응답한다는 점입니다. 로그인 세션이나 쿠키가 전혀 없어도 요청이 통과됩니다.

트윗 주소를 자세히 보면 마지막에 긴 숫자가 붙어 있는데, 이게 바로 트윗 ID입니다. 이 ID를 신디케이션 API에 물어보면 그 트윗에 대한 정보가 돌아오고, 그 안에 영상이 있다면 저장 가능한 파일 목록도 함께 담겨 있습니다. 로그인 없이 트윗 주소만으로 화질 목록이 바로 뜨는 이유가 여기에 있습니다.

같은 API가 언론사 임베드용으로도, 저장 도구용으로도 쓰인다는 점이 중요합니다. 언론사 페이지에 삽입된 트윗 카드는 이 정보를 받아서 텍스트·작성자·영상 미리보기를 화면에 그리는 데 쓰고, 저장 도구는 같은 정보 안에서 화면에 그릴 대신 다운로드 가능한 파일 주소 목록을 추려서 보여주는 것뿐입니다. 둘 다 같은 원본 데이터를 다른 방식으로 활용하는 셈입니다.

화질 목록은 업로드 시점에 이미 정해져 있습니다

화면에 뜨는 720p, 360p, 270p 같은 화질 옵션은 저장을 누르는 그 순간에 실시간으로 만들어지는 게 아닙니다. X가 영상을 업로드받는 시점에 미리 여러 해상도로 변환해 각각 별도의 파일(variant)로 저장해 두는 구조입니다. 즉 "화질을 고른다"는 건 이미 만들어져 있는 파일 중 하나를 선택하는 것이지, 그 자리에서 화질을 낮추거나 압축하는 과정이 아닙니다.

이걸 실제로 확인할 수 있는 사례가 있습니다. NASA 공식 계정이 화성 탐사선 퍼서비어런스의 착륙 성공 순간을 올린 영상 트윗("Touchdown confirmed")을 분석해보면, 720p(1280×720)·360p(640×360)·270p(480×270), 이렇게 세 가지 해상도의 MP4 파일이 각각 별도 주소로 존재하는 걸 확인할 수 있습니다. NASA처럼 큰 계정의 상징적인 영상조차 최고 화질이 720p까지만 준비돼 있었다는 뜻이고, 이건 도구의 한계가 아니라 그 트윗에 대해 X가 인코딩해 둔 화질의 상한이 거기까지였다는 뜻입니다.

이 사례가 알려주는 건 또 있습니다. 세 화질 사이의 간격이 균등하지 않다는 점입니다. 720p에서 360p로 내려가면 가로·세로 픽셀 수가 각각 절반이 되고, 360p에서 270p로 내려가는 폭은 그보다 작습니다. 화질 단계가 산술적으로 딱 떨어지게 나뉘어 있는 게 아니라, 여러 재생 환경에 맞춰 실용적인 몇 단계로 준비돼 있다고 보는 게 맞습니다.

그래서 "왜 이 트윗은 1080p가 없냐"는 질문의 답은 대개 "그 화질로 X가 인코딩해 저장하지 않았기 때문"입니다. 목록에 없는 해상도는 애초에 존재하지 않는 파일이기 때문에 어떤 사이트나 프로그램을 쓰더라도 없는 화질을 새로 만들어낼 수는 없습니다. 반대로 말하면 목록에 뜨는 화질은 전부 X 서버에 실제로 저장돼 있는 원본 그대로의 파일이라는 뜻이기도 합니다. 화질을 "선택"한다는 표현이 정확히는 "이미 준비된 파일 중 하나를 지정한다"는 뜻에 가까운 이유입니다.

여러 해상도를 미리 만들어 두는 방식 자체는 X만의 독특한 방식이 아니라, 웹에서 영상을 서비스하는 곳들이 흔히 쓰는 접근입니다. 재생 환경(화면 크기, 회선 속도)이 저마다 다르기 때문에, 재생하는 순간마다 변환하는 대신 몇 가지 대표 해상도를 미리 만들어 두고 그중에서 상황에 맞는 파일을 내보내는 편이 서버 부담을 줄이는 방법이기 때문입니다. 저장 도구 입장에서는 이 미리 만들어진 파일들의 주소를 그대로 안내해주는 역할을 합니다.

비공개 계정과 삭제된 글이 안 되는 이유

신디케이션 API는 공개된 트윗에 대해서만 정상적인 데이터를 돌려주도록 만들어져 있습니다. 잠금 계정의 글이나 이미 삭제된 글의 ID로 요청을 보내면, 영상 정보 대신 404 오류나 tombstone(글이 삭제되었거나 접근할 수 없음을 나타내는 응답)이 돌아옵니다.

이건 저장 도구가 그 트윗에 접근할 "권한"이 없어서가 아니라, API 자체가 애초에 그 글을 "공개 상태로 존재하지 않는다"고 판단해 응답하는 것입니다. X 앱 안에서 로그인해 그 계정을 팔로우하고 있다면 영상이 정상적으로 보이겠지만, 로그인이 필요 없는 신디케이션 API 입장에서는 완전히 다른 이야기입니다. 같은 트윗이라도 어떤 경로로 접근하느냐에 따라 보이거나 안 보이는 게 갈립니다.

이 구조는 뒤집어 보면 하나의 원칙으로 요약됩니다. "누구나 로그인 없이 볼 수 있는 글"이 아니면 이 방식으로는 애초에 데이터를 받아올 수 없다는 원칙입니다. 팔로워 승인을 받아야 보이는 글, 계정을 비공개로 전환한 뒤의 과거 글, 삭제된 글은 전부 이 원칙 아래에서 같은 이유로 걸러집니다. 예외를 두지 않고 동일한 기준으로 판정되는 구조라서, 특정 계정만 유독 되거나 안 되는 일은 생기지 않습니다.

GIF로 보이는 트윗의 정체

X 타임라인에서 재생 버튼 없이 자동으로 반복 재생되는, 흔히 "GIF"라고 부르는 트윗들이 있습니다. X는 이런 트윗을 내부적으로 별도 분류(animated_gif)로 구분해 저장해 둡니다. 일반 영상 트윗이 "video"로 분류되는 것과 구분되는 범주입니다. 저장 도구가 신디케이션 API 응답에서 이 분류도 함께 인식해서 처리하기 때문에, 일반 재생 버튼이 있는 영상 트윗과 마찬가지로 화질 목록에서 빠지지 않고 같이 잡힙니다.

이런 구분이 있다는 것 자체가, 사용자에게는 똑같이 "움직이는 그림"으로 보여도 시스템 내부적으로는 서로 다른 종류의 콘텐츠로 관리되고 있다는 뜻입니다. 저장 도구를 만들 때 이 분류를 함께 처리하지 않으면 GIF로 표시되는 트윗만 목록에서 조용히 빠지는 결과로 이어질 수 있는데, 이런 트윗들이 재생 버튼 유무만 다를 뿐 결국 신디케이션 API 응답 안에서는 함께 다뤄지는 항목이라는 걸 알면 왜 같은 화면에서 처리되는지 이해가 됩니다.

t.co 단축링크와 CORS 직접 전달

X는 트윗 안에 들어가는 모든 링크를 t.co라는 자체 단축 주소로 한 번 감쌉니다. 이건 클릭 통계를 재기 위한 리다이렉트일 뿐, 트윗과 별개의 다른 곳을 가리키는 주소가 아닙니다. 그래서 t.co로 시작하는 링크를 붙여넣으면 먼저 원래 주소로 자동으로 펼쳐진 뒤, 그 안에서 트윗 ID를 뽑아 처리합니다. 사용자가 원래 주소를 따로 찾아 붙여넣을 필요가 없다는 뜻입니다.

모바일 앱의 공유 버튼으로 복사되는 주소가 유독 t.co 형태로 나오는 경우가 많은 것도 같은 맥락입니다. 앱이 공유용 링크를 만들 때 클릭을 추적할 수 있는 단축 주소 형태로 생성해주기 때문이고, 이건 트윗 자체의 성격과는 무관한 링크 발급 방식의 차이일 뿐입니다. 어떤 형태의 주소를 넣든 최종적으로 도달하는 트윗과 트윗 ID는 동일합니다.

또 하나 중요한 차이는 저장된 파일이 정확히 어디서 오느냐입니다. X의 영상 서버는 CORS(교차 출처 리소스 공유)를 허용해두고 있어서, 브라우저가 중간 서버를 거치지 않고 X의 서버에서 곧바로 파일을 받아올 수 있습니다. 많은 다운로드 사이트가 영상을 자사 서버로 먼저 받아온 뒤 다시 사용자에게 전달하는 중계 방식을 쓰는 것과 다른 구조이고, 이 중간 단계가 없다는 점이 체감 속도 차이로 이어집니다.

정리하면 화질 목록·GIF 지원·t.co 처리·전달 속도까지, 이 절에서 다룬 네 가지 특징은 전부 하나의 원리에서 파생됩니다. "공개된 데이터만, 로그인 없이, 원본 그대로" 다루는 공개 API 구조라는 원리입니다. 이 원리를 알고 나면 화질이 왜 그렇게 나뉘고, 왜 비공개 글은 막히고, 왜 저장이 빠른지가 각각 별개의 특징이 아니라 하나의 설명으로 이어집니다.

왜 이 구조를 알아두면 도움이 되는가

구조를 모르면 저장이 안 될 때마다 "이 사이트가 문제인가, 저 사이트로 가볼까"를 반복하게 됩니다. 하지만 구조를 알면 판단 순서가 단순해집니다. 먼저 그 트윗이 로그인 없이도 보이는 공개 글인지부터 확인하고, 그다음에야 화질 목록의 개수나 GIF 여부를 살피면 됩니다.

이 순서를 거꾸로 하면 자꾸 헷갈립니다. 화질이 왜 이것뿐이냐고 도구 탓을 하기 전에, 애초에 그 트윗에 X가 몇 가지 화질을 준비해뒀는지부터 봐야 하고, 저장이 아예 안 된다고 도구 탓을 하기 전에, 그 계정이 지금도 공개 상태인지부터 봐야 합니다. 원인의 순서를 아는 것만으로 불필요하게 여러 사이트를 옮겨 다니는 시간을 줄일 수 있습니다.

화질·형식별로 정리하면

화질과 트윗 유형에 따라 저장 가능 여부와 특징이 달라집니다. 앞서 설명한 원리를 표로 정리했습니다.

구분형식특징저장 가능 여부
최고 화질(트윗마다 상한이 다름, 720p까지 확인된 사례 있음)MP4용량이 크고 화질이 가장 선명가능
중간 화질(예: 360p)MP4용량과 화질을 절충한 수준가능
최저 화질(예: 270p)MP4용량이 작아 저장이 상대적으로 빠름가능
움직이는 GIF로 보이는 트윗(animated_gif 분류)MP4 계열재생 버튼 없이 자동으로 반복 재생가능
t.co로 축약된 링크의 영상MP4원래 주소로 자동 펼쳐진 뒤 처리가능
화질이 한 가지만 준비된 트윗MP4업로드 원본 해상도가 낮으면 변형 개수도 적음가능(선택지는 하나)
비공개(잠금) 계정의 영상-신디케이션 API가 정상 데이터를 내려주지 않음불가
이미 삭제된 트윗의 영상-tombstone 응답으로 처리됨불가

여기서 짚어둘 점은 화질 목록의 "개수"가 트윗마다 다르다는 것입니다. NASA 사례처럼 세 가지 화질이 모두 준비된 트윗도 있지만, 업로드된 영상의 원본 해상도나 X의 처리 방식에 따라 더 적은 화질만 존재하는 트윗도 있을 수 있습니다. 목록에 뜨는 화질이 그 트윗에서 고를 수 있는 전부라고 보면 됩니다.

용량을 기준으로 화질을 고르는 기준도 함께 알아두면 편합니다. 화면이 작은 기기에서 보거나 저장 공간을 아끼고 싶다면 중간 화질이면 충분한 경우가 많고, 다시 편집하거나 큰 화면에서 재생할 계획이라면 목록에서 가장 높은 화질을 고르는 게 낫습니다. 어느 쪽을 고르든 저장 자체의 성공 여부에는 영향이 없고, 순수하게 결과물의 용량과 선명도 차이로 이어집니다.

자주 막히는 지점

실제로 사용하다 막히는 지점은 대부분 아래 여섯 가지 중 하나로 좁혀집니다. 증상과 원인, 해결법을 함께 정리했습니다. 표를 먼저 훑어보고 자신의 상황과 가장 비슷한 줄을 찾아보면 됩니다.

증상원인해결
주소를 넣어도 화질 목록이 하나도 안 뜬다비공개 계정이거나 이미 삭제된 글트윗을 브라우저에서 직접 열어 실제로 정상 표시되는지 먼저 확인합니다
화질 목록에 1080p가 없다그 트윗은 X가 애초에 720p 등 더 낮은 화질까지만 인코딩해 저장도구의 한계가 아니라 원본 파일의 한계이므로 목록의 최고 화질을 선택합니다
GIF 트윗인데 소리 아이콘이 없다animated_gif로 분류된 트윗은 원래 무음 반복 영상정상 동작이므로 그대로 저장하면 됩니다
t.co로 시작하는 링크를 넣기가 망설여진다단축 링크는 클릭 통계용 리다이렉트일 뿐 실제 주소와 다른 게 아님원래 주소로 자동 변환되므로 그대로 붙여넣어도 됩니다
로그인부터 해야 하는 줄 알고 계정 정보를 입력하려 했다공개 신디케이션 API 기반이라 로그인 자체가 필요 없음트윗 주소만 있으면 되고 계정 정보는 입력하지 않아도 됩니다
저장은 됐는데 파일이 안 열린다다운로드가 중간에 끊겼거나 저장 위치를 놓침다운로드 폴더를 확인하고 다시 저장을 시도합니다
여러 트윗을 연달아 저장하려니 매번 같은 과정을 반복해야 한다트윗마다 화질 목록과 파일 주소가 각각 다름트윗 하나씩 주소를 새로 확인하는 절차 자체는 생략할 수 없습니다

표에 없는 상황이라면 우선 그 트윗을 아무 계정으로도 로그인하지 않은 브라우저 창(시크릿 모드 등)에서 열어보는 게 좋은 진단법입니다. 로그인하지 않은 상태에서도 정상적으로 보인다면 공개 트윗이라는 뜻이고, 그렇지 않다면 위 표의 첫 번째 줄에 해당하는 경우일 가능성이 큽니다.

저장한 영상, 어디까지 써도 될까

공개된 트윗만 가져올 수 있다는 건 앞서 확인한 그대로입니다. 비공개 계정이나 삭제된 글은 애초에 처리되지 않습니다. 다만 "가져올 수 있다"와 "마음대로 써도 된다"는 완전히 다른 문제입니다.

영상의 저작권은 그 영상을 만들어 올린 원저작자에게 있습니다. 본인이 직접 촬영하거나 제작한 영상이거나, 원저작자에게 명확히 허락을 받은 경우가 아니라면, 저장한 파일을 다른 SNS나 유튜브 등에 재업로드하거나 재배포하는 건 저작권 침해가 될 수 있습니다. 이 원칙은 화질이나 파일 형식과 무관하게 동일하게 적용됩니다.

여기서 놓치기 쉬운 부분이 하나 있습니다. 뉴스 기사나 다른 트윗에서 흔히 보는 "임베드된 트윗"은 원본 트윗을 그대로 카드 형태로 감싸 보여주는 방식이라 작성자 정보와 원문 링크가 항상 함께 노출됩니다. 반면 영상 파일만 따로 저장해 다른 곳에 올리면 이 맥락과 출처 표시가 함께 딸려가지 않습니다. 저장한 파일을 어딘가에 다시 올릴 계획이라면, 이 차이 때문에라도 원작자 표시를 직접 챙겨야 한다는 뜻입니다.

개인적으로 소장하거나, 본인이 나온 영상을 백업해두거나, 자료 조사를 위해 잠깐 저장해 참고하는 용도라면 대체로 무리 없는 사용에 해당합니다. 하지만 상업적으로 활용하거나 출처 표기 없이 다른 채널에 그대로 옮겨 올리는 건 별개의 문제이므로, 확실하지 않다면 원저작자에게 직접 문의하고 사용 범위를 확인하는 게 가장 안전합니다. 공개된 트윗을 가져올 수 있다는 기술적 사실과, 그 결과물을 어떻게 써도 되는지에 대한 판단은 서로 다른 층위의 문제라는 점을 기억해두면 됩니다.

계정을 공개로 설정했다고 해서 그 글의 모든 콘텐츠를 자유롭게 가져다 써도 된다는 뜻은 아닙니다. 공개 여부는 "누가 볼 수 있는가"를 정하는 설정이고, 저작권은 "누가 쓸 수 있는가"를 정하는 별개의 권리입니다. 이 둘을 같은 것으로 착각하면 의도치 않게 문제가 될 수 있으니, 저장한 영상을 개인 소장 범위를 넘어 활용할 계획이라면 이 구분을 한 번 더 떠올리는 게 좋습니다.

저장 도구가 "다운로드할 수 있는지"만 판단할 뿐 "써도 되는지"까지 판단해주지는 않는다는 점도 함께 알아두면 좋습니다. 기술적으로 접근 가능한 공개 트윗이라도 사용 목적이 원저작자의 의도와 어긋난다면, 그 판단은 결국 저장하는 사람의 몫으로 남습니다.

다른 다운로드 사이트나 방식과 무엇이 다른가

인터넷에는 "동영상 다운로드"를 표방하는 사이트가 많고, 그중 상당수가 여러 플랫폼을 한 번에 지원한다고 안내합니다. 이런 범용 사이트는 대개 링크를 받으면 자사 서버가 먼저 그 영상을 내려받아 재인코딩한 뒤 사용자에게 다시 전달하는 중계 방식을 씁니다. 그 과정에서 시간이 걸리고, 처리 방식에 따라 결과물이 원본과 달라지는 경우도 있습니다.

X(트위터) 영상은 구조가 조금 다릅니다. 공개 신디케이션 API 덕분에 로그인 없이 트윗 ID만으로 원본 파일 목록에 곧바로 접근할 수 있고, 파일 자체도 X의 서버에서 브라우저로 직접 전달됩니다(CORS 허용). 중간에 재인코딩 단계가 없다는 뜻이고, 그래서 화질도 앞서 설명한 것처럼 X가 애초에 저장해 둔 그대로 나옵니다.

다른 플랫폼과 비교해도 차이가 있습니다. 여러 SNS는 공개 임베드 API의 접근 범위가 제한적이거나 로그인 세션이 필요한 경우가 흔해서, 저장 과정에서 별도의 우회 방법이 필요해지는 일이 잦습니다. X는 신디케이션 API를 공개해 둔 덕분에 상대적으로 저장 경로가 단순한 편입니다. 다만 이 단순함은 어디까지나 "공개된 글"에 한정되며, 비공개 계정 앞에서는 다른 플랫폼과 마찬가지로 접근이 막힌다는 점은 동일합니다.

브라우저 확장 프로그램 형태의 저장 도구와 비교해도 차이가 있습니다. 확장 프로그램은 설치와 권한 허용이 필요하고 브라우저마다 별도로 설치해야 하지만, 웹에서 주소만 붙여넣는 방식은 설치 없이 트윗 주소 하나로 바로 확인할 수 있다는 점에서 진입 장벽이 낮습니다. 확장 프로그램은 브라우저를 사용하는 모든 페이지에 대해 광범위한 권한을 요구하는 경우가 많아, 영상 하나 저장하자고 그 정도 권한을 계속 유지하는 게 부담스러울 수도 있습니다.

PC용 프로그램을 설치해 저장하는 방식과 비교해도 마찬가지입니다. 프로그램 설치는 운영체제별로 따로 받아야 하고 업데이트도 신경 써야 하지만, 웹 기반 방식은 브라우저만 있으면 PC와 휴대폰을 가리지 않고 동일하게 동작합니다. 결국 어떤 방식을 택하든 "공개된 글만 가져올 수 있다"는 근본적인 제약은 똑같이 적용되고, 방식 사이의 차이는 접근 절차의 번거로움과 처리 속도에서 갈립니다.

화면 녹화로 영상을 남기는 방법과 비교해보는 것도 도움이 됩니다. 화면 녹화는 어떤 플랫폼의 영상이든 재생만 되면 기록할 수 있다는 장점이 있지만, 녹화한 파일은 원본 화질보다 낮아지고 화면 테두리나 알림 같은 불필요한 요소가 함께 찍히기 쉽습니다. 원본 파일 그대로를 화질별로 받는 방식과는 결과물의 품질 자체가 다르다고 보면 됩니다.

X 안에 있는 "북마크(즐겨찾기)" 기능과 헷갈리기도 하는데, 이 둘은 목적이 다릅니다. 북마크는 그 트윗을 X 안에서 나중에 다시 찾아보기 쉽게 표시해두는 기능이라 계정 상태가 바뀌거나 글이 삭제되면 함께 사라집니다. 반면 파일로 직접 저장해두면 그 트윗이 이후에 비공개로 전환되거나 삭제되더라도 저장된 파일 자체는 내 기기에 그대로 남습니다.

정리

  • 트위터(X) 영상 저장이 안 될 때는 대부분 비공개 계정이나 삭제된 글이 원인이며, 도구 자체의 문제가 아닙니다. 트윗을 로그인 없이 열어서 실제로 보이는지 확인하는 게 가장 먼저 할 일입니다.
  • 화질이 여러 개로 뜨는 건 X가 업로드 시점에 미리 여러 해상도로 인코딩해 저장해 두었기 때문이고, 목록에 없는 화질은 애초에 존재하지 않는 파일이라 어떤 도구로도 새로 만들어낼 수 없습니다.
  • 움직이는 GIF로 보이는 트윗도 별도 분류(animated_gif)로 함께 지원되고, t.co 단축링크는 자동으로 원래 주소로 펼쳐진 뒤 처리되므로 모바일 공유 버튼으로 복사한 주소를 그대로 붙여넣어도 됩니다.
  • 저장한 파일은 X의 서버에서 브라우저로 직접 전달되기 때문에, 자사 서버를 거쳐 다시 전달하는 중계 방식보다 구조가 단순하고 중간 단계가 적습니다.
  • 저장이 가능하다는 것과 자유롭게 재배포해도 된다는 건 다른 문제이므로, 저작권은 항상 원저작자에게 있다는 점과 개인적·합법적 용도로만 써야 한다는 점을 기억해야 합니다.
X(트위터) 영상 다운로드 — 화질 선택 저장

로그인 없이 트윗 주소만 넣으면 화질별로 골라 MP4로 저장합니다. 완전 무료입니다.

자주 묻는 질문

트위터 영상이 저장 안 되는 가장 흔한 이유는 무엇인가요?

대부분 비공개(잠금) 계정의 글이거나 이미 삭제된 글이기 때문입니다. 공개 신디케이션 API는 공개된 트윗만 응답하도록 돼 있어서, 잠금 계정이나 삭제된 글은 404나 tombstone 응답을 돌려주고 화질 목록 자체가 뜨지 않습니다. 트윗을 브라우저에서 직접 열어 실제로 정상 표시되는지 먼저 확인하는 게 가장 빠른 진단법입니다. 페이지 자체가 안 열린다면 저장 도구를 바꿔봐도 결과는 같습니다.

화질 목록에 왜 1080p가 없나요?

그 트윗을 X가 애초에 1080p로 인코딩해 저장해두지 않았기 때문입니다. 화면에 뜨는 화질 옵션은 저장을 누르는 순간 실시간으로 만들어지는 게 아니라 업로드 시점에 미리 준비된 파일들입니다. NASA의 화성 착륙 영상 트윗을 분석해도 최고 화질이 720p까지만 확인되는 사례가 있어, 도구의 한계가 아니라 원본 파일 자체의 한계인 경우가 많습니다. 목록에 뜬 화질 중 가장 높은 걸 고르면 그 트윗에서 받을 수 있는 최선입니다.

움직이는 GIF로 표시되는 트윗도 저장할 수 있나요?

가능합니다. X는 이런 트윗을 내부적으로 일반 영상과 다른 별도 분류(animated_gif)로 저장해두는데, 저장 도구가 이 분류도 함께 인식해서 처리합니다. 재생 버튼 없이 자동으로 반복 재생되는 형태의 트윗이라도 일반 영상 트윗과 마찬가지로 화질 목록에서 빠지지 않고 같이 나타납니다. 소리가 없는 게 정상이니 걱정하지 않아도 됩니다.

비공개(잠금) 계정의 영상도 가져올 수 있나요?

가져올 수 없습니다. 공개 신디케이션 API는 공개된 트윗만 서빙하도록 만들어져 있어서, 잠금 계정의 글로 요청을 보내면 정상 데이터 대신 오류나 삭제·차단 표시를 돌려줍니다. 팔로우해서 X 앱 안에서는 보인다 해도, 로그인이 필요 없는 이 API 입장에서는 접근할 수 없는 글로 처리됩니다. 이건 특정 도구만의 제약이 아니라 같은 방식을 쓰는 어떤 서비스에도 동일하게 적용되는 구조적 한계입니다.

삭제된 트윗의 영상도 복구해서 저장할 수 있나요?

불가능합니다. 이미 삭제된 글의 ID로 요청하면 신디케이션 API가 tombstone(삭제·차단됨을 뜻하는 응답)을 돌려줍니다. 영상이 서버에서 지워졌다는 뜻이라, 삭제되기 전에 미리 저장해두지 않았다면 이후에는 어떤 방법으로도 원본 파일을 다시 가져올 수 없습니다. 화제가 된 영상일수록 삭제되기 전에 미리 저장해두는 게 유일한 대비책입니다.

트윗 주소가 t.co로 축약돼 있는데 그대로 넣어도 되나요?

그대로 넣어도 됩니다. t.co는 X가 클릭 통계를 재려고 모든 링크를 감싸는 자체 단축 주소일 뿐, 트윗과 다른 곳을 가리키는 게 아닙니다. 붙여넣으면 자동으로 원래 주소로 펼쳐진 뒤 그 안에서 트윗 ID를 뽑아 처리하므로 원래 주소를 따로 찾아 바꿔 넣을 필요가 없습니다. 모바일 앱의 공유 버튼으로 복사한 주소가 대개 이 형태입니다.

로그인하지 않아도 저장이 되나요?

됩니다. 공개 신디케이션 API는 원래 언론사나 블로그가 트윗을 임베드할 때 쓰도록 X가 공개해둔 것이라 로그인 세션이나 쿠키 없이도 트윗 ID만으로 응답을 받을 수 있습니다. 계정 정보를 입력하는 절차 자체가 없습니다. 다만 이건 공개된 글에 한정되며, 비공개 계정의 글은 로그인 여부와 무관하게 처리되지 않는다는 점은 그대로 유지됩니다.

가격 보기카톡 무료 상담