Using the uuid of the channel, you can use the following to get the current information of the channel:
curl -q 'http://admin:pass@tvheadend:9981/api/idnode/load?uuid=cde30897ab8a6fd04ebc9aa9e01bfb1c'
Or I use the following for nice output:
curl -q 'http://admin:pass@tvheadend:9981/api/idnode/load?uuid=cde30897ab8a6fd04ebc9aa9e01bfb1c' | jq . | less
You can change the "value" of an "id".
So, using the uuids of the tags and channel, create a file with the info you want to change:
data.conf
node=[{"tags":["5528b04deba7ea8eb48e8232529e591e","ecf664a95fbed4df8d9736339f96826d"],"uuid":"cde30897ab8a6fd04ebc9aa9e01bfb1c"}]
Then something like this will update the tags:
curl -q --data @data.conf 'http://admin:pass@tvheadend:9981/api/idnode/save'
You can change the channel number in the same way, or to do both at the same time for a particular channel (uuid), you could change the conf file to something like:
node=[{"tags":["5528b04deba7ea8eb48e8232529e591e","ecf664a95fbed4df8d9736339f96826d"],"number":"222222","uuid":"cde30897ab8a6fd04ebc9aa9e01bfb1c"}]
Note: it appears that you have to "replace" the entire id/value instead of being able to just "add" to the existing. So for your tags, you would find out the existing list, then add the one you want and send them ALL.
Make sure you have backups before testing and also beware that "bad" data can crash tvheadend...