No, this is not possible.
In order for your users to be able to upload content, you need to give them your key. You can try to hide the key, but ultimately, your client needs to be able to find the key, and if your software can find the key, then so can the user.
You can try to obfuscate and hide the code that finds the key, but again: in order for your client to be able to run at all, the CPU needs to understand it. CPUs are much, much, much, much, much dumber than humans, so if the CPU can understand the code, then so can a human. This is the route taken by a lot of expensive commercial software, and all of them can and have been cracked.
You can try to put the code into a hermetically sealed, tamper-proof box, i.e. give appliances to your users instead of just software. But then you just shift the problem around: instead of attacking your software, they are now attacking your hardware, and again, whatever techniques you used to build your tamper-proof hardware, there is usually another technique to take it apart again. This is the route taken by gaming consoles, mobile phones, and at the extreme end, smartcards, and all of them can and have been cracked.
Really, the only thing that reliably works is to not give your users the code at all. Implement the authoring tool as a webservice which you host on your premises in an environment that you control.
The other alternative is to not treat your users as criminals and dispense with all those technological restrictions, and work with your users on a basis of mutual respect and trust.