Welcome Wolfgang!
For (1), have you seen this page?
That explains how you can download a version of the notebooks that you can run directly with the Observable runtime library. This will provide you with ES module files that are “compiled” from the code you write in each of the cells.
The above is as far as “officially supported” methods go. As far as I know there is no officially supported way to do (2) + (3).
BTW, I suggest you post (a1) and (a2) as separate threads with more details (e.g. links to example notebooks).
Now, read on if you’re feeling adventurous!
In case you want to download the original source in each of the cells of your notebook, it is possible (though not very convenient yet) to get them by making authenticated requests to Observable’s internal API (see the unofficial scripts below). You can then run the resulting JSON files using the compile.notebook method of @asg017’s “unofficial-observablehq-compiler”:
(2)+(3) are very related. It is possible to upload and download notebooks by talking to the Observable API. See the scripts linked in this thread: backup method?, particularly @mootari’s observable-client library:
and my script (based on an earlier version of @mootari’s code).
Warning: as mentioned above, these rely on Observable’s internal API, so are subject to breakage at any time and without notice. In fact, I haven’t tested my script in a long time so it may already be broken and require some tweaking. (Though feel free to post here or in the other thread and I or others can try to help out.)