비디오 및 자막 · YouTube 썸네일 다운로더 및 메타데이터 뷰어
YouTube 썸네일 요청 작동 방식: 동영상 ID, 크기 이름 및 i.ytimg.com
· 작동 방식
유튜브 미리보기 이미지 http
YouTube 미리보기 이미지는 동영상 ID와 크기 이름으로 구성된 예측 가능한 주소에 게시됩니다. 이 게시물에서는 이러한 요청이 어떻게 형성되는지, 무엇이 반환되는지, 도구가 비디오 자체를 건드리지 않고도 모든 크기를 나열할 수 있는 이유를 설명합니다.
링크가 있고 사진이 필요합니다. 썸네일 다운로드 뒤에 숨은 일상적인 작업입니다.
뉴스레터 편집자는 시청 링크로 시작하는 경우가 많으며 비디오 스트림이 아닌 신뢰할 수 있는 미리보기 이미지가 필요합니다. 유용한 단위는 11자의 비디오 ID입니다. 왜냐하면 각 공개 썸네일 주소는 해당 ID와 알려진 파일 이름으로 구성되기 때문입니다. 해당 ID를 기록하면 원본 공유 URL에 추적 또는 타임스탬프 매개변수가 포함된 경우에도 편집자가 모든 크기 확인을 하나의 동영상에 연결할 수 있습니다.
ToolAcre는 요청이 이루어지기 전에 브라우저에 붙여넣은 링크를 구문 분석합니다. 해당 로컬 단계는 입력 이해와 공개 자산 가져오기를 분리하므로 Google에 문의하지 않고도 유효하지 않은 호스트나 형식이 잘못된 ID가 거부될 수 있습니다. 따라서 요청 로그에서 잘못된 붙여넣기로 인해 i.ytimg.com 항목이 전혀 생성되지 않습니다. 검증된 ID만 이미지 프로빙으로 진행됩니다.
이미지 호스트: i.ytimg.com — 미리보기 이미지가 제공되는 위치와 youtube.com과 분리된 이유
이미지 파일은 보기 페이지 호스트가 아닌 i.ytimg.com에서 제공됩니다. 이미지 호스트에 정적 포스터를 유지하면 클라이언트가 플레이어, 추천, 댓글 또는 페이지 JavaScript를 로드하지 않고도 JPEG을 직접 요청할 수 있습니다. 결과적으로 응답은 플레이어 마크업을 해석하거나 전체 보기 페이지가 초기화될 때까지 기다리지 않고 자체적으로 이미지로 평가될 수 있습니다.
직접 이미지 호스트는 여전히 로컬 처리가 아닌 네트워크 서비스입니다. 광고 차단기, 오프라인 모드, 관리형 프록시 또는 DNS 정책은 요청을 중지할 수 있으며 Google은 요청과 브라우저에서 제공하는 Origin 헤더를 수신합니다. DevTools는 요청이 어디로 갔는지 증명할 수 있으며, 응답을 디코딩하면 YouTube의 작은 대체와 예술 작품을 구별하는 데 필요한 별도의 증거를 제공할 수 있습니다.
주소 패턴 — 비디오 ID와 default, mqdefault, hqdefault, sddefault 또는 maxresdefault와 같은 크기 이름
구현된 패턴은 https://i.ytimg.com/vi/VIDEO_ID/VARIANT.jpg.입니다. ToolAcre는 ID 모양을 확인한 후 maxresdefault, sddefault, hqdefault, mqdefault, default, hq1, hq2 또는 hq3 중 하나로 대체합니다. 모든 이름을 조사하면 작은 대체를 전달하는 200 응답이 사용 가능한 아트워크가 포함된 다른 변형을 조기에 획득하는 것을 방지할 수 있습니다.
이 8개의 이름에는 5개의 포스터 선택과 3개의 프레임 스틸이 포함됩니다. 카탈로그는 공칭 크기와 목적을 기록하지만 모든 비디오가 모든 선택적 크기를 게시하는 것은 아니기 때문에 브라우저는 여전히 반환된 파일을 확인합니다. 행은 해당 이름에 대해 이 동영상이 실제로 반환한 내용을 보고하며, 이는 완전히 채워진 업로드와 카탈로그가 연결하는 크기와 다를 수 있습니다.
응답이 증명하는 것: 상태, 바이트 및 디코딩된 크기가 함께
개요에서는 HTTP 상태를 크기가 존재한다는 증거로 처리했지만 구현에서는 해당 주장을 수정했습니다. 누락된 후보는 404, 다른 HTTP 오류 또는 YouTube의 120×90 자리 표시자를 포함하는 성공적인 200 응답일 수 있습니다. 날짜가 지정된 보고서는 해당 실행 시 로그아웃된 브라우저에 제공된 응답을 캡처합니다. 이전에 동일한 예측 가능한 경로를 차지했던 오래된 포스터를 재구성할 수 없습니다.
ToolAcre는 본문을 Blob으로 읽고 실제 크기를 디코딩합니다. 디코딩할 수 없는 본문은 오류이며 더 큰 변형에 대한 120×90 결과는 누락으로 표시됩니다. 따라서 상태, 크기 및 바이트는 서로 다른 증거를 설명합니다. 이미지는 Google에서 직접 가져오기 때문에 이 유효성 검사를 통해 이미지를 제공한 서비스에서 조회를 비밀로 하지 않고도 정확성이 향상됩니다.
실제 예: 하나의 비디오에 대해 8개의 JPEG 요청을 모두 작성
하나의 유효한 ID에 대해 도구는 개요에 명시된 5개가 아닌 8개의 JPEG URL을 구축합니다. 5개의 포스터 이름과 hq1, hq2, hq3을 조사하여 가장 큰 의도된 포스터가 먼저 고려되도록 카탈로그 순서를 유지합니다. 따라서 편집자는 해당 스틸 사진을 대체 포스터 해상도로 착각하는 대신 업로드된 기본 아트워크를 캡처된 세 개의 프레임 위치와 비교할 수 있습니다.
한 요청은 1280×720, 또 다른 요청은 480×360을 생성할 수 있으며 선택 사항인 요청은 자리 표시자 또는 404을 반환할 수 있습니다. 목록은 하나의 대체 시퀀스를 가장하는 대신 각 결과를 보고하여 모든 업로드를 인증할 수 있습니다. 이러한 나란히 있는 증거는 이전 업로드에 표준 화질 포스터가 있지만 실제 최대 해상도 파일이 없을 때 특히 유용합니다.
이것이 동영상에 영향을 미치지 않는 이유 — 미리보기 이미지는 스트림의 일부가 아닌 별도의 공개 파일입니다.
썸네일 요청은 비디오 또는 오디오 바이트를 요구하지 않습니다. 별도의 공개 이미지 파일을 다루며 도구에는 플레이어 토큰, 미디어 서명 해독 또는 스트림 다운로드 경로가 포함되어 있지 않습니다. 가장 큰 후보라도 일반적인 JPEG 응답이므로 이러한 URL을 검사해도 사용 가능한 미디어 형식, 비트 전송률 또는 재생 승인에 대해서는 아무 것도 알 수 없습니다.
분리로 인해 액세스가 생성되지 않습니다. 비공개, 삭제 및 연령 제한 동영상은 사용할 수 있는 로그아웃 기록을 노출하지 않으며, 공개 썸네일 규칙은 이러한 제한을 우회하거나 YouTube가 게시하지 않은 파일을 복구할 수 없습니다. 예측 가능한 경로는 단지 주소 규칙일 뿐입니다. 권한과 가용성은 여전히 요청 시 이미지 호스트가 제공하는 내용에 따라 결정됩니다.
여기에 포함되지 않는 내용 — 비공개 동영상, 지역 제한 콘텐츠, 마지막으로 본 이후 변경된 미리보기 이미지
변경된 미리보기 이미지는 또 다른 경계입니다. 예측 가능한 URL은 이전 버전이 아닌 현재 제공되는 이미지를 나타냅니다. 지역 정책 및 로그아웃 상태의 가용성도 방문자가 조회 시 얻을 수 있는 정보에 영향을 줄 수 있습니다. 캠페인을 문서화하는 사람은 다운로드한 이미지에 날짜를 적어야 합니다. 왜냐하면 재설계 후 동일한 경로를 요청하면 변경되지 않은 URL 아래에 다른 픽셀이 반환될 수 있기 때문입니다.
썸네일 프로브는 네트워크를 통해, 실패 HTTP 응답을 통해, 200 자리 표시자를 통해 또는 본문을 이미지로 디코딩할 수 없기 때문에 실패할 수 있습니다. 인터페이스는 이러한 실패 클래스를 구별하여 유지하므로 부재가 과장되지 않습니다. 프록시 중단은 재시도를 요구하는 반면, 디코딩된 120×90 자리 표시자는 요청된 더 큰 변형이 전달되지 않았음을 구체적으로 보여줍니다.
요점: 예측 가능한 주소, 사전 발표 — YouTube 썸네일 다운로더가 링크의 모든 크기를 나열하는 방법
가져오기 전에 구문 분석이 발생합니다. Fetch 후 브라우저는 리퍼러, 스토어 없음 캐싱 없이 자격 증명이 필요 없는 익명의 GET 요청을 보내고 i.ytimg.com 및 www.youtube.com으로 직접 리디렉션됩니다. Google은 해당 요청과 Origin 헤더를 확인하지만 그 사이에는 ToolAcre 서버나 프록시가 없습니다. 따라서 DevTools는 브라우저에서 Google로 나가는 이미지 트래픽을 표시해야 하지만 붙여넣은 비디오 ID를 전달하는 ToolAcre API 호출은 표시하지 않습니다.
함께 제공되는 oEmbed 조회는 동일한 ID와 format=json을 포함하는 표준 감시 URL을 사용합니다. 네트워크, HTTP 응답 또는 유효하지 않은 JSON로 인해 실패할 수 있으며 두 요청 모두 비공개, 삭제 또는 연령 제한 자료를 검색하지 않습니다. 썸네일 증거와 메타데이터 증거는 별도로 유지됩니다. 구조화된 레코드가 실패하는 경우에도 JPEG을 사용할 수 있으며 두 분기 모두 지속적인 액세스를 증명하지 못합니다.