linux - Shell 文件解析以自动上传 youtube

标签 linux shell youtube

我正在编写一个小脚本来将视频批量上传到 youtube。它看起来像这样:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "description" "$file"
done

在哪里youtube-upload是一个基于 cli 的 python uploader ..

我的问题是,如您所见,我从文件名路径中获取标题,而描述始终相同 :(。我想将描述写入文本或 xml 文件进行解析,然后上传对每个文件都有适当的描述..

如何在此上下文中使用 shell 命令执行此操作?

感谢您的建议

最佳答案

拥有一个包含所有文件名->描述映射的文件:

my file.mp4 this is a description
file2.mp4 this is another description
my last file.mp4 this is a description
ilied.mp4 description

然后只抓取以文件名开头的行并使用该行的其余部分:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "$(grep "^$(basename "$file")" desc | sed 's/.*.mp4 //')" "$file"
done

查看 $(...) 中的内容:

grep "^$(basename "$file")" desc | sed 's/.*.mp4 //'

grep 在“desc”文件中找到以 basename($file) 开头的行,然后使用 sed 去掉文件名,留下该行的其余部分(这将是描述)。

请注意,这不需要成为youtube-upload 命令行的一部分。你也可以把它扔到一个变量中:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        description=$(grep "^$(basename "$file")" desc | sed 's/.*.mp4 //')
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "$description" "$file"
done

关于linux - Shell 文件解析以自动上传 youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374918/

相关文章:

Linux cdc_acm 设备 - 发送到设备的意外字符

在 X64 gcc 内联 asm 中调用 scanf

shell - 在下载 rpm 依赖项之前运行 shell 脚本?

linux - 如何在新行中传递每个 shell 参数

javascript - 嵌入 YouTube 视频 : Custom Javascript Actions on Thumbnail

c++ - Youtube 与 WINAPI GetForegroundWindow() 的交互?

linux - server.sh : 2: . : properties. conf: 未找到

regex - 移动以编号开头且类型为 pdf 的文件

shell 脚本 : nested loop and continue

wordpress - YouTube观看次数没有依靠Wordpress嵌入