Shell文件解析以自动化youtube上传

时间:2013-05-04 13:39:07

标签: 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上传器。

我的问题是,你可以看到我从文件名路径中取出标题,并且描述总是相同的:(。我想将描述写入文本或xml文件解析它,然后上传对每个文件都有适当的描述..

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

感谢您的建议

1 个答案:

答案 0 :(得分:1)

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

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