我正在使用https://github.com/tokland/youtube-upload上传视频,但是,我无法在视频说明中划线。有什么方法可以做到吗?
例如,我成功了:
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
mView.postDelayed(new Runnable() {
public void run() {
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}, 0);
我尝试在说明中间添加转义序列C:\Python35\youtube-upload-master\bin>youtube-upload --title="Title" \
--description="This is one line" --category=Music "video.mp4"
,\\n
,\n
,但是它们是在没有转义的情况下添加的(例如\r\n
)。还尝试了This is \\n one line
,但不允许使用HTML标记。
<br />
答案 0 :(得分:1)
我通过修改源文件(https://github.com/tokland/youtube-upload/blob/master/youtube_upload/main.py)克服了这个问题。 特别的地方是103-106行:
if hasattr(u('string'), 'decode'):
description = u(options.description or "").decode("string-escape")
else:
description = options.description
看起来解码已删除的转义字符,因此没有创建新行。
我已将其替换为:
description = description.replace('#n', '\r\n')
我将使用此特殊字符(#n
)序列来表示新行开头。
这个序列在进行预处理时需要包含在描述文本中。
答案 1 :(得分:1)
\\n
是正确且有效的,不需要任何特殊技巧
答案 2 :(得分:1)
我花了很长时间才弄明白,所以我想我会帮助一些人。这对某些人而言并不适合其他人工作的原因,我几乎是正面的,这与您实际将数据传递到Python脚本的方式有关。
发现upload_video.py文件的大多数人都是从命令行执行此操作。不幸的是,当描述数据传递给Python时,它会将\ n更改为文字斜杠和'n'而不是换行符。
响应者在上面做的是将他的Bash输入中的换行符更改为#n。我继续使用\ n。它可以更改为您希望提供的任何内容,只要您与Python脚本中的修改一致即可。
如果您修改upload_video.py并在第94行附近添加以下内容:
formattedDescription = options.description.replace( '\\n', '\n' )
几行后你还需要编辑这一部分:
title=options.title,
description=options.description,
tags=tags,
categoryId=options.category
所以它写着:
title=options.title,
description=formattedDescription,
tags=tags,
categoryId=options.category
我创建一个单独变量的原因是我可以将其转储到屏幕上并确保正确显示换行符。
无论如何,这是一个非常简单的修改;我彻底测试了它,完美地通过了YouTube API。即使您想尝试自己的方法,只需将描述变量转储出来,您就会很快发现为什么\ n不起作用。 YouTube会接受说明中的\ n;你的脚本没有通过它。