Tínhamos uma grande necessidade de um recurso semelhante e acabamos construindo uma biblioteca Python de código aberto geral e gratuita para esse fim. Você pode encontrá-lo em https://github.com/ucd-cws/arcpy_metadata ou executando um "pip install arcpy_metadata". Há alguma documentação sobre os recursos e como usá-lo, com algumas contribuições adicionais do World Resources Institute. Tentamos manter as coisas relativamente Pythonic para que elas se integrem bem e possam ser aprendidas rapidamente. Aqui está um exemplo:
import arcpy_metadata as md
import datetime
metadata = md.MetadataEditor(path_to_some_feature_class) # also has a feature_layer parameter if you're working with one, but edits get saved back to the source feature class
metadata.title = "The metadata title!"
generated_time = "This layer was generated on {0:s}".format(datetime.datetime.now().strftime("%m/%d/%Y %I:%M %p"))
metadata.purpose = "Layer represents locations of the rare Snipe."
metadata.abstract.append("generated by ___ software")
metadata.abstract.append(generated_time) # .prepend also exists
metadata.tags.add(["foo", "bar", "baz"]) # tags.extend is equivalent to maintain list semantics
metadata.finish() # save the metadata back to the original source feature class and cleanup. Without calling finish(), your edits are NOT saved!
Ainda há muito o que pode ser adicionado, mas é bastante extensível se você subclassificar os itens que já estão lá ou configurá-los corretamente. Ainda se trata de software de qualidade alfa, mas funciona e estamos felizes com isso.
Para quem procura esse recurso no ArcGIS Pro, a partir da versão 2.5, agora inclui uma API de metadados do Python. Há mais detalhes na documentação da classe Metadados .