YouTube URL/ID를 사용하여 Shorts 및 비디오를 다운로드하기 위해 Go로 작성된 명령줄/터미널 기반 앱입니다.
참고 : 즉시 사용할 수 있는 도구를 찾고 있다면 이 저장소에 고정된 문제를 확인하세요.
YouTube Shorts 및 동영상을 다운로드하는 중입니다.
다양한 콘텐츠 품질 중에서 선택하는 기능.
현재 프로젝트에는 2개의 종속성이 있습니다.
tview - 풍부한 대화형 위젯이 포함된 터미널 UI 라이브러리 - Golang으로 작성되었습니다.
FFmpeg - 최고의 크로스 플랫폼 멀티미디어 프레임워크입니다. 시스템에 설치되거나 최소한 프로젝트의 루트 디렉터리에 최신 정적 바이너리가 있어야 합니다. 이는 외부 런타임 종속성 에 가깝습니다.
YouTube Shorts/동영상 ID 또는 URL을 붙여넣으면 앱이 YouTube 내부 API에서 메타데이터를 가져옵니다.
그런 다음 비디오 및 오디오에 대한 품질 선택에 따라 애플리케이션은 가져온 콘텐츠 URL에 소규모 데이터 요청을 생성하여 Shorts/Video 콘텐츠를 다운로드합니다.
결국 FFmpeg가 존재하면 별도의 비디오 및 오디오 스트림 파일이 모두 단일 출력 파일로 병합됩니다.
Go를 설치한 후 프로젝트 루트에서 아래 명령어를 입력합니다.
리눅스/유닉스에서는,
go build -o go_youtube_downloader ./cmd/go_youtube_downloader.go
윈도우에서는,
go build -o go_youtube_downloader.exe ./cmd/go_youtube_downloader.go
Go를 설치한 후 이 프로젝트를 복제/다운로드하고 프로젝트 루트에서 아래 명령을 입력합니다.
go run ./cmd/go_youtube_downloader.go
다운로드한 별도의 비디오 및 오디오 스트림을 단일 파일로 병합하려면 시스템에 FFmpeg가 설치되어 있거나 프로젝트의 루트 디렉터리에 최신 정적 바이너리가 있어야 합니다.
YouTube의 서명 암호화로 인해 연령 제한 동영상을 다운로드할 수 없습니다.
YouTube에는 수신되는 각 요청에 대해 요청당 약 10MB의 대역폭 제한이 있습니다. 요청에서 이 크기 제한보다 더 많은 데이터를 얻으면 추가 요청으로 인해 다운로드가 제한되거나 연결이 종료될 수 있습니다. 따라서 데이터를 다운로드하고 출력 파일에 쓸 때 더 나은 성능을 얻기 위해 일관성을 위해 더 작은 덩어리로 나뉩니다. 선택한 품질과 크기에 따라 다운로드 시간이 다소 길어질 수 있습니다.
YouTube 리버스 엔지니어링: 재검토 - YouTube의 내부 API를 설명하는 블로그입니다.
YouTube-Internal-Clients - 숨겨진 YouTube API 클라이언트를 검색하는 Python 스크립트입니다. 단지 연구 프로젝트일 뿐입니다.
YT-DLP - 추가 기능 및 수정 사항이 포함된 youtube-dl 포크
Youtubei - 동영상, 재생목록, 채널, 동영상 정보 및 댓글, 관련 동영상, 다음 동영상 등 YouTube 데이터를 받아보세요!
Golang의 효율적인 파일 다운로드: 종합 가이드
Golang 다운로드 파일 예
팀 뉴파이프
os/exec를 사용하여 Go에서 고급 명령 실행