Como usar o wget no caso como o json?

1

Suponha que tenhamos json assim:

[{
    "title": "How to download File From Node Js",
    "extension": "mp4",
    "url" : "http://zzz.com/asd/what.mp4",
    "folder__relative_path": "tutorial/node"
}, {
    "title": "How to play Guitar",
    "extension": "mp4",
    "url" : "http://asdz.com/asd/dsa.mp4",
    "folder__relative_path": "another_folder/hello/tutorial/Guitar"
}
....
more
more
....
]

Então, basicamente, temos um arquivo json com informações sobre o URL de download, o caminho e o nome do arquivo com extensão. Nós só queremos baixar do link acima.

Como faço para baixar renomear com título com extensão e salve no diretório que especificamos;

Sabemos que podemos usar o wget assim

wget www.zzz.com/1.mp4 -O /var/cache/foobar/google.mp4

mas não é difícil buscar e salvar do json ??

Existe alguma maneira de resolver este problema?

    
por Me Noob Sir 28.12.2016 / 12:03

1 resposta

2

Você pode usar o Python para analisar o JSON e executar wget :

#! /usr/bin/python3
import json, sys, subprocess

for k in json.load(sys.stdin):
    cmd = ["echo", "wget", k["url"], "-O", '{:s}/{:s}.{:s}'.format(k["folder__relative_path"], k["title"], k["extension"])]
    subprocess.run(cmd)

Com a entrada de amostra:

$ python3 f.py < foo.txt
wget http://zzz.com/asd/what.mp4 -O tutorial/node/How to download File From Node Js.mp4
wget http://asdz.com/asd/dsa.mp4 -O another_folder/hello/tutorial/Guitar/How to play Guitar.mp4

Remova "echo", para realmente executar os comandos wget depois de verificar a saída.

    
por muru 28.12.2016 / 15:21