터미널 다운로드 관리자를 찾고 있습니다

터미널 다운로드 관리자를 찾고 있습니다

CLI(터미널)에서 실행되는 다운로드 관리자를 찾고 있습니다.

도구는 다음 목적을 해결해야 합니다.

  1. YouTube URL 목록을 입력으로 사용하거나 파일에서 URL 목록을 가져옵니다.

  2. 네트워크 연결이 중단되면 다운로드를 일시 중지했다가 다시 시작해야 합니다.

  3. 터미널에서 실행해야 합니다. 헤드리스 미디어 서버에서 이것을 실행하고 있습니다.

지금은 nodejs 스크립트를 사용하고 있습니다 youtube-dl. 그러나 스크립트에는 연결 모니터링 및 다운로드 무결성 검사, 다운로드 재개 기능이 부족합니다.

Extreme Download Manager를 사용해 보았는데 헤드리스로 실행되지 않았습니다.

이를 달성하기 위한 모든 의견을 높이 평가합니다.

답변1

두 개의 while루프 인으로 bash충분합니다.

while ! youtube-dl --batch-file /tmp/yt -i -c --socket-timeout 5; do while ! ping -c 1 -W 1 google.com; do echo "Network interface may down, please check your network"; sleep 10; done; echo "Network up but got url failed before, re-loop file after 5 seconds."; sleep 5; done

설명:

  • youtube-dl와 같은 일반 패키지 관리자를 통해 설치할 수 있는 Python 패키지입니다 apt.
  • /tmp/yt파일에는 URL 목록이 한 줄씩 포함되어 있습니다.
  • -i잘못된 URL 오류가 발생하면 파일에서 다음 URL을 계속 선택하라는 의미입니다(그러나 소켓 오류는 발생하지 않으며 ping'실패 및 네트워크 연결 대기' 루프로 이동함).
  • -c부분적으로 다운로드된 파일의 강제 재개를 의미합니다. 재개가 작동하려면 파일 이름의 형식이 일관되어야 합니다(즉, youtube-dl다음에 형식을 변경할 수 없으며 재개가 작동할 것으로 예상할 수 없습니다). 저는 개인적으로 -o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'형식을 사용합니다
  • 저는 개인적으로 --no-mtime"터치" 파일을 보장하기 위해 추가했습니다(비디오 업데이트 시간 대신 다운로드 시간별로 파일 정렬을 나열하려는 경우 유용함).

답변2

모든 명령줄HTTP클라이언트가 유용해야 합니다. POSIX 시스템에서는 다음을 고려하십시오.GNU wget또는곱슬 곱슬하다(그리고 프로토콜이 다음과 같은 경우FTP, 다음과 같은 수많은 FTP 명령줄 클라이언트 중 하나입니다.ncftp).

다음과 같은 HTTP 클라이언트 라이브러리를 사용하여 직접 코딩할 수도 있습니다.libcurl(그리고 Python, Guile, Perl 등과 같은 많은 스크립팅 언어에는 수많은 HTTP 클라이언트 기능이 있습니다). 다음에 대해 좀 더 자세히 알아보세요.HTTP그리고 그것의쿠키.

(Linux의 경우) YouTube 관련 명령줄 도구를 찾을 수 있습니다.

관련 정보