4d6e664ba695809e7339ab7eaa9558bf070cd19b
update_record was using the custom field ID to identify rows in PATCH requests instead of NocoDB's internal Id primary key. This prevented proper row matching, causing values to be overwritten instead of appended to the comma-separated seeder list.
Seed Tracker
Matches {id}.torrent files against your qBittorrent session and updates NocoDB with your username.
Requirements
- Python 3.10+
- No external dependencies
Usage
API Mode (updates NocoDB directly)
python seed_tracker.py \
--id-folder ./torrents \
--bt-backup ~/.local/share/qBittorrent/BT_backup \
--nocodb-url https://noco.example.com \
--table-id tblXXXXX \
--api-token xc-xxxx \
--id-field cXXXXX \
--seeding-field cYYYYY
CSV Mode (outputs file for manual import)
python seed_tracker.py \
--id-folder ./torrents \
--bt-backup ~/.local/share/qBittorrent/BT_backup \
--csv-only
Flags
| Flag | Required | Description |
|---|---|---|
--id-folder |
Yes | Folder containing {id}.torrent files |
--bt-backup |
Yes | qBittorrent's BT_backup folder |
--nocodb-url |
API mode | NocoDB base URL |
--table-id |
API mode | Table ID (starts with tbl) |
--api-token |
API mode | API token (xc-token) |
--id-field |
API mode | Field ID for Id column (starts with c) |
--seeding-field |
API mode | Field ID for seeding_users column (starts with c) |
--csv-only |
No | Skip API, output CSV instead |
--output |
No | CSV output path (default: seeding_update.csv) |
--debug |
No | Print API request/response details |
Finding NocoDB IDs
- Table ID: Click
...next to table name → Copy Table ID - Field IDs: Click field header dropdown → Copy Field ID
CSV Uploader
Uploads CSV files generated by others (via --csv-only) to NocoDB.
Usage
python csv_uploader.py \
--csv seeds.csv \
--nocodb-url https://noco.example.com \
--table-id tblXXXXX \
--api-token xc-xxxx \
--id-field cXXXXX \
--seeding-field cYYYYY
Flags
| Flag | Required | Description |
|---|---|---|
--csv |
Yes | CSV file to upload |
--nocodb-url |
Yes | NocoDB base URL |
--table-id |
Yes | Table ID |
--api-token |
Yes | API token |
--id-field |
Yes | Field ID for Id column |
--seeding-field |
Yes | Field ID for seeding_users column |
Description
Languages
Python
100%