【问题标题】:Downloading only new subtitles in RaspberyPi在 Raspberry Pi 中仅下载新字幕
【发布时间】:2019-02-04 17:10:07
【问题描述】:

我在使用 bash 脚本在 Raspberry Pi 上编写下载字幕时遇到问题。

问题是我希望每隔一小时左右使用 cron 运行 1 个脚本,以便在某个目录中下载新视频文件的字幕。

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

用法是:

qnapi /path/to/folder

所以我发现的是

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

基本上给了我所有电影文件的列表。现在我想以某种方式比较是否存在具有相同基本名称的 *.srt 字幕文件,如果不存在,则以某种方式使用 qnapi 命令遍历所有找到的文件。将其写入 bash 脚本并 cron 执行。

【问题讨论】:

    标签: bash raspberry-pi raspbian


    【解决方案1】:

    也许这方面的东西会起作用(未经测试,可能有错别字)。

    我从谷歌搜索中猜测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"
    

    【讨论】:

      【解决方案2】:

      感谢您的帮助:)

      我搞定了

      #!/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
      

      工作正常。所有字幕都在下载中,如果有的话就跳过了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 2020-06-30
        • 2017-11-28
        相关资源
        最近更新 更多