我正在尝试从json文件youtube-dl中提取信息,并将一些信息从其中提取到.txt文件中。
下载视频时,使用youtube-dl的输出示例。
[info] Writing video description to: /Users/ACCOUNT/Downloads/Rick Astley - Never Gonna Give You Up (Video).description
[info] Writing video description metadata as JSON to: /Users/ACCOUNT/Downloads/Rick Astley - Never Gonna Give You Up (Video).info.json
我的想法我更喜欢这种方法,因为youtube-dl仅需要运行一次。
如果还有其他通用命令可以在Mac和Linux上作为grep使用,可以使其变得简单,那么我认为使用它们代替grep没问题。
问题
"VIDEO NAME"
,但只希望它为VIDEO NAME
。"tags": ["music", "video", "classic"]
中看起来像这样。要获取"music", "video", "classic"
。 脚本示例
txtfile="$GREP_DESCRIPTION_FROM_YOUTUBE-DL_OUTPUT"
jsonfile="$GREP_JSON_FROM_YOUTUBE-DL_OUTPUT"
echo TITLE >> $txtfile
grep -o '"title": *"[^"]*"' $jsonfile | grep -o '"[^"]*"$' >> $txtfile
echo \ >> $txtfile
echo CHANNEL >> $txtfile
grep -o '"uploader": *"[^"]*"' $jsonfile | grep -o '"[^"]*"$' >> $txtfile
echo \ >> $txtfile
echo CHANNEL URL >> $txtfile
grep -o '"uploader_url": *"[^"]*"' $jsonfile | grep -o '"[^"]*"$' >> $txtfile
echo \ >> $txtfile
echo UPLOAD DATE >> $txtfile
grep -o '"upload_date": *"[^"]*"' $jsonfile | grep -o '"[^"]*"$' >> $txtfile
echo \ >> $txtfile
echo TAGS >> $txtfile
grep -o '"tags": *"[^"]*"' $jsonfile | grep -o '"[^"]*"$' >> $txtfile
echo \ >> $txtfile
echo URL >> $txtfile
echo $url >> $txtfile
echo \ >> $txtfile
echo DESCRIPTION >> $txtfile
最佳答案
谢谢巴默!这回答了我四个问题中的三个。
剩下的是,我想不通的是如何从youtube-dl输出中获取json文件的位置,如何使其在脚本中工作,以及如何在同一目录中以.txt结尾的.txt文件。
像这样:
[info] Writing video description metadata as JSON to:
之后的所有内容,即/Users/ACCOUNT/Downloads/Rick Astley - Never Gonna Give You Up (Video).info.json
$jsonfile
$txtfile
用jq更新了脚本
#! /bin/bash
txtfile="textfile.txt"
jsonfile="jsonfile.json"
echo - TITLE - >> $txtfile
jq -r '.title' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - CHANNEL - >> $txtfile
jq -r '.uploader' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - CHANNEL URL - >> $txtfile
jq -r '.uploader_url' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - UPLOAD DATE - >> $txtfile
jq -r '.upload_date' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - URL - >> $txtfile
jq -r '.webpage_url' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - TAGS - >> $txtfile
jq -r -c '.tags' $jsonfile >> $txtfile
echo \ >> $txtfile | echo \ >> $txtfile
echo - DESCRIPTION - >> $txtfile
jq -r '.description' $jsonfile >> $txtfile
关于json - Grep命令问题-程序输出中的Grep文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63731320/