Esta es una de las formas en que yo lo haría...
Lo siguiente fue probado y me funcionó bajo MacOS Catalina 10.15.6.
He descargado jq
de https://stedolan.github.io/jq/download/ bajo la OS X sección:
En Terminal He ejecutado lo siguiente comandos :
cd ~/Downloads
xattr -d com.apple.quarantine jq-osx-amd64
sudo cp jq-osx-amd64 /usr/local/bin/jq
sudo chmod 0755 /usr/local/bin/jq
- Nota: Si /usr/local/bin
no existe ya, debe crearse primero con, por ejemplo sudo mkdir -p /usr/local/bin
Con los pasos anteriores se han establecido jq
para su uso desde el línea de comandos en Terminal o de un Ejecutar Shell script acción en Automatizador o un do shell script
comando utilizando AppleScript .
Descargar un vídeo de YouTube con youtube-dl
utilizando el --write-info-json
opción A continuación, utilicé el ejemplo shell script código que se muestra a continuación, en un Ejecutar Shell script acción en un Automatizador flujo de trabajo como Servicio/Acción Rápida para procesar el JSON archivo por lo que sólo tendría el llaves que has mencionado.
Ejemplo shell script código :
for f in "$@"; do
[[ -f $f ]] || continue
[[ $f =~ .*\.json$ ]] || continue
fn="${f##*/}"
tmpfile="$(mktemp /tmp/"${fn}.XXXXXX")" || exit 1
/usr/local/bin/jq '{"upload_date": .upload_date, "fulltitle": .fulltitle, "description": .description}' "$f" > "$tmpfile"
mv "$tmpfile" "$f"
done
Con esta configuración como se muestra en la imagen más abajo, selecciono el JSON archivo creado por youtube-dl
utilizando el --write-info-json
opción , en Buscador y luego Haga clic con el botón derecho del ratón en en él seleccionando Limpiar el JSON de youtube-dl de la menú de contexto .
A continuación, produjo un JSON archivo con lo siguiente ejemplo de estructura mientras se sobrescribe el original JSON archivo :
{
"upload_date": "20080913",
"fulltitle": "Jerry Seinfeld returns to Comedy on the Letterman show",
"description": "Jerry Seinfeld returns to Comedy on the Letterman show"
}
Notas:
-
El ejemplo JSON archivo se creó a partir de la salida de:
youtube-dl --write-info-json https://www.youtube.com/watch?v=8JOsxxm-RnQ
-
El ejemplo shell script código tal y como está codificado, puede manejar múltiples seleccionados JSON archivos en Buscador al mismo tiempo.
-
Mientras que el ejemplo shell script código contiene algunos tratamiento de errores Sin embargo, no hace una copia de seguridad del original. JSON archivo(s) antes de sobrescribir. Adicional: código es necesario añadirlo si es algo que necesitas/quieres.
-
El ejemplo shell script código tal y como está codificado, no contiene ningún tratamiento de errores en lo que respecta a la jq
comando y sólo está destinado a ser utilizado en JSON archivos creado por youtube-dl
utilizando el --write-info-json
opción con el supuesto de que el objetivo llaves siempre existen en estas circunstancias. De lo contrario, los tratamiento de errores puede ser necesario.
-
El formato del JSON archivos creado por youtube-dl
utilizando el --write-info-json
opción son con formato plano es decir, se escribe todo en una sola línea. La salida del jq
comando tal y como está escrito, produce multi-línea salida. Si desea con formato plano de salida, puede utilizar el -c
opción Por ejemplo,..: jq -c ...
-
El ejemplo shell script código puede utilizarse en un shell script y se ejecuta desde el línea de comandos en Terminal .
-
El tratamiento de errores puede ser eliminado del ejemplo shell script código y formateado para que también pueda ser utilizado como un one-liner después de cambiar de directorio el donde el JSON archivos se encuentran, por ejemplo:
for f in *.json; do jq '{"upload_date": .upload_date, "fulltitle": .fulltitle, "description": .description }' "$f" > "tmp"; mv tmp "$f"; done
- Nota: Esto sobrescribe el original archivo sin una copia de seguridad.
- NOTA: JSON archivos no son archivos de texto ordinario en sí mismos, sino que están especialmente formateados, y no se debe analizar con servicios públicos como
sed
, awk
etc., y en su lugar utilizar un utilidad diseñado expresamente para trabajar con Notación de objetos de JavaScript (JSON) archivos ¡! jq
es un utilidad diseñado para trabajar con JSON archivos .
0 votos
Puede consultar
jq
omiller
. También está el Librería JSON para Python - si te gusta eso. Lo utilicé hace unos años para una aplicación meteorológica - hay un Canal de YouTube que me hizo empezar.