Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Filtering array using curl (qBittorrent Web API)

Hoping someone can help me. I’m trying to understand the qBittorrent Web API. At the moment I’m listing all the paused torrents with:

curl -i http://localhost:8080/api/v2/torrents/info?category=test

The problem is that lists the whole JSON array – my question is can I just display the "name" or "hash" fields? This is all using curl through cmd, but I’ve tried this in Git Bash & Powershell:

[{"eta":8640000,"f_l_piece_prio":false,"force_start":false,"hash":"8419d48d86a14335c83fdf4930843438a2f75a6b","last_activity":1664863523,"magnet_uri":"","max_seeding_time":0,"**name**":"TestTorrentName","num_complete":12,"num_incomplete":1,"num_leechs":0,"num_seeds":0,"priority":0,"progress":1,"ratio":0,"ratio_limit":-2,"save_path":"F:\\Completed\\test\\","seeding_time":0,"seeding_time_limit":-2,"seen_complete":1664863523,"seq_dl":false,"size":217388295,"state":"pausedUP","super_seeding":false,"tags":"","time_active":569,"total_size":217388295,"tracker":"udp://open.stealth.si:80/announce","trackers_count":10,"up_limit":-1,"uploaded":0,"uploaded_session":0,"upspeed":0}]

I’ve tried the following that should work according to https://jqplay.org/ – see screenshot

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

curl -i http://localhost:8080/api/v2/torrents/info?category=test | jq --raw-output '.[] | .name'

But unfortunately I’m getting the following error:

curl -i http://localhost:8080/api/v2/torrents/info?category=test | jq --raw-output '.[] | .name'
  % Total    % Received % Xferd  Average Speed   Time    '.name'' is not recognized as an internal or external command,
operable program or batch file.
Ti

>Solution :

curl -i http://localhost:8080/api/v2/torrents/info?category=test | jq --raw-output '.[] | .name'

The -i let curl give some header info, that is parsed to jq, but jq can only parse JSON end therefore fails.

Remove the -i and optionally replace it with -s to remove the stats:

curl -s http://localhost:8080/api/v2/torrents/info?category=test | jq --raw-output '.[] | .name'
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading