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

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

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

도구는 다음 목적을 다루어야 합니다.

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

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

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

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

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-dlPython 패키지는 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 명령줄 클라이언트 중 하나입니다.네트워크 파일 전송 프로토콜).

일부 HTTP 클라이언트 라이브러리를 사용하여 일부 코드를 직접 작성할 수도 있습니다.라이브러리 컬(Python, Guile, Perl 등과 같은 많은 스크립팅 언어에는 광범위한 HTTP 클라이언트 도구가 있습니다.) 더 많이 알아야 해HTTP 프로토콜그리고 그것의비스킷.

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

관련 정보