Adding a driver to a Cycles node via Python I'm trying to add a driver to a Cycles Value node using Python. So far my code is:

node = material.node_tree.nodes.new("ShaderNodeValue")
node.driver_add("default_value")


However, this just gives me a 'property "default_value" not found' error. I've also tried:

node.driver_add("value")
node.driver_add("outputs", 0)
node.driver_add("outputs[0].default_value")
node.driver_add("nodes['Value'].outputs[0].default_value")


None of these work either. So my question is: how do I exactly add a driver to a Cycles Value node? It can be done via the UI right-click menu, but I can't find a data path that driver_add() will accept.
You need to add the driver on the output, not the node directly:

fcurve = node.outputs[0].driver_new("default_value")


or

fcurve = node.outputs['Value'].driver_new("default_value")


The driver expression is accessed like:

fcurve.driver.expression