이 질문은 다음에서 비롯됩니다.여기하지만 차이점은
알겠습니다. 다음 URL이 있습니다
https://www.ppppppppppp.com/it/yyyy/911-omicidio-al-telefono/stagione-1-appesa-a-un-filo
https://www.ppppppppppp.com/it/yyyy/avamposti-dispacci-dal-confine/stagione-1-cerignola
https://www.ppppppppppp.com/it/yyyy/belle-da-morire/stagione-1-bellezza-stalking
이 이름으로 폴더를 만들려고 합니다.
911-omicidio-al-telefono
avamposti-dispacci-dal-confine
belle-da-morire
URL에서 이름 추출
예를 들어 URL에 파일을 원합니다.
https://www.ppppppppppp.com/it/yyyy/911-omicidio-al-telefono/stagione-1-appesa-a-un-filo
URL에서 추출된 폴더 이름을 직접 다운로드
911-omicidio-al-telefono
하지만 폴더 이름이 추출되지 않고 각 파일이 폴더 URL 이름 외부에 다운로드되므로 문제가 있는 것 같습니다.
이 문제를 해결하기 위해 다음을 시도했습니다.
script.sh
이 코드를 사용하여
#!/bin/bash
url=$1
folder_name=$(echo "$url" | sed -E 's/^https:\/\/www\.ppppppppppp\.com\/it\/video\/(.+)\/.*$/\1/')
mkdir -p "$folder_name"
file_path=$(echo "$url" | sed -E "s/^(.+)\.fdash.*$/\1\.mp4/")
ffmpeg -i "$file_path.fdash-video=6157520.mp4" -i "$file_path.fdash-audio_eng=160000.m4a" -c copy "$file_path"
mv "$file_path" "$folder_name/$(echo $file_path | cut -f1 -d '.').mp4"
그런 다음 bash 터미널에서 이렇게 호출했습니다.
yt-dlp --referer "https://www.ppppppppppp.com/" --add-header "Cookie:COOKIE" --batch-file links_da_scaricare.txt -o '%(title)s.%(ext)s' --exec "/home/appbox/Downloads/dplay/script.sh {}"
문제가 무엇입니까?
모든 파일은 해당 폴더가 아닌 동일한 폴더에 다운로드됩니다. 즉, 다운로드한 파일의 URL에서 이름이 추출된 폴더가 아닙니다.
답변1
현재 직면하고 있는 문제는 파일이 저장되는 방식으로 인해 발생합니다. 스크립트의 ffmpeg 명령은 "$folder_name"으로 지정된 폴더가 아닌 현재 작업 디렉터리에 파일을 생성합니다.
이 문제를 해결하려면 다음과 같이 -y 옵션을 사용하여 출력 디렉터리를 지정하도록 ffmpeg 명령을 변경할 수 있습니다.
ffmpeg -i "$file_path.fdash-video=6157520.mp4" -i "$file_path.fdash-audio_eng=160000.m4a" -c copy -y "$folder_name/$(echo $file_path | cut -f1 -d '.').mp4"
그러면 $folder_name에 지정된 폴더에 원하는 파일 이름으로 출력 파일이 직접 저장됩니다.
또한 더 이상 명령의 해당 위치에서 파일을 이동할 필요가 없습니다 mv "$file_path" "$folder_name/$(echo $file_path | cut -f1 -d '.').mp4"
.
스크립트를 이렇게 변경하면 이제 ffmpeg 명령이 파일을 $folder_name으로 지정된 폴더에 직접 저장하므로 해당 폴더에 파일을 다운로드할 수 있습니다.