在树莓派仅下载新的字幕

问题描述 投票:0回答:2

我用bash脚本在树莓派写作下载字幕的问题。

问题是我想有1个脚本的cron运行每隔一小时左右,将下载的字幕在某些目录中新的视频文件。

有一个名为qnapi程序,自动下载字幕在目录正确的格式,但它适用于1个文件夹,并随时重新下载的字幕文件。

用法是:

qnapi /path/to/folder

所以我发现的是

find /media/pi/RaspStorage -iname "*.mkv"

基本上给了我所有的电影文件列表。现在我想,如果有相同的基本名称* .SRT字幕文件是否存在,如果以某种方式比较没有那么通过与qnapi命令所有找到的文件不知何故循环。把它写在bash脚本和cron它。

bash raspberry-pi raspbian
2个回答
0
投票

也许沿着这行的东西会工作(未经测试,可能有错别字)。

我猜在qnapi从谷歌搜索的语法。

基本上,没有字幕到一个临时文件夹,下载字幕有符号链接的视频,然后将其移回主文件夹。

#!/bin/bash

MEDIA=/media/pi/RaspStorage
WORK=/tmp/workingfolder
mkdir -p "$WORK"
pushd "$WORK" || { echo "ERROR: no working directory"; exit 1; }
# assuming subtitle name is video name except with ".srt" extension
find "$MEDIA" -iname "*.mkv" | while read video; do
    vidnoext="${video%????}"
    viddir="${vidnoext%/*}"
    subtitle="${vidnoext}.srt"
    if [ ! -f "$subtitle" ]; then
        # this assumes bare filenames (without directory) are distinct
        ln -s "$video" "${vidnoext}.mkv"
    fi
done
qnapi -c .
find . -iname '*.srt' | while IFS= read -r subtitle; do
    video="$(realpath "$(subtitle%????}.mkv")"
    mv -i "$subtitle" "$(dirname "$video")/"
done
rm *
popd
rmdir "$WORK"

0
投票

感谢帮助 :)

我得到它的工作

#!/bin/bash
echo "Updated DLNA folder"

sudo minidlnad -R

for file in $(find /media/pi/RaspStorage -name '*.mkv' -or -name '*.avi'); do
 name=${file:: -4}
 ext=".srt"
 name=$name$ext

 if [ -f $name ]; then
  echo "Napisy już ściągnięte dla:" "$(basename "$file")"
 else
 qnapi "$(dirname "$file")"/"$(basename "$file")"
 fi
done

工作正常。所有字幕下载,如果有一些已经它的跳跃

© www.soinside.com 2019 - 2024. All rights reserved.