Homotopy type of the diffeomorphism group of the sphere. I've seen in several places the claim that
$$\mathrm{Diff}(S^n) \approx O(n+1) \times \mathrm{Diff}(D^n\,\text{rel}\,\partial D^n),$$
where:


*

*$\mathrm{Diff}(S^n)$ is the group of $C^{\infty}$ diffeomorphisms of the $n$-sphere.

*$O(n+1)$ is the orthogonal group.

*$\mathrm{Diff}(D^n\,\text{rel}\,\partial D^n)$ is the group of diffeomorphisms of the $n$-dimensional unit disk which restrict to the identity on the boundary.

*$\approx$ means homotopy equivalence.


Moreover, the objects above have the $C^{\infty}$ topology.
Question: what is the most elementary way to prove this? 
My thoughts: I know that $S^n$ can be viewed as $D^n$ modulo its boundary. From this description, a naive guess would be that
$$\mathrm{Diff}(S^n) \approx \mathrm{Diff}(D^n\,\text{rel}\,\partial D^n) \times \mathrm{Diff}(\partial D^n),$$
by breaking up what a diffeomorphism does inside the disk and on the boundary. I know this is false, but I'm not sure why.
 A: This is an important fact that I quote a lot, so it seems useful to have a proof written down.
The essential tool is the following. Let $G$ be a topological group that acts transitively on a space $X$ in a reasonable way (precisely, the action admits local slices). Then picking a basepoint $x$ and acting on it, we obtain a fiber sequence $$G_x \to G \to X$$ where $G_x$ is the stabilizer of $x$. In particular, if either the stabilizer $G_x$ or the space $X$ is contractible, then the map $G \to X$ (resp. $G_x \to G$) is a homotopy equivalence. If the action admits a global section, then the section provides a homeomorphism $G_x \times X \to G$. 
Now let us prove your desired claim in parts.
1) Let $\text{Diff}_{T_x}(M)$ denote the space of diffeomorphisms which fix $x$ and for which the differential $T_x M \to T_x M$ is the identity. Then $\text{Diff}(M)$ acts transitively on the frame bundle $\text{Fr}(M)$, the principal $GL_n$-bundle associated to the tangent bundle. In the special case $M = S^n$, this action admits a section: if $SL^\pm_n(\Bbb R)$ denotes matrices with determinant $\pm 1$, then $SL^\pm_n(\Bbb R)$ acts smoothly on $S^n$ via $(A, x) \mapsto Ax/\|Ax\|$. This induces an action on $\text{Fr}(S^n)$ which (check!) is free and transitive. Thus picking out the corresponding element of $SL^\pm_n(\Bbb R)$ determines the section. 
Finally, $O(n)$ is the maximal compact subgroup of $GL_n$, and $GL_n = SL^\pm_n \times \Bbb R^+$, so in particular we have up to homotopy the decomposition $\text{Diff}(S^n)\simeq \text{Diff}_{T_x}(S^n) \times O(n)$. Now our job is to determine the homotopy type of the first factor. 
2) Let $\mathcal D_x$ be the space of germs of smooth embeddings $f: D^n \hookrightarrow S^n$ so that $f(0) = x$ and $df_0$ is a fixed isomorphism $\Bbb R^n \to T_x S^n$. Then $\text{Diff}_{T_x}(S^n)$ acts on $\mathcal D_x$. I claim this action is transitive and $\mathcal D_x$ is contractible; the stabilizer of a disc is the space of diffeomorphisms that are the identity on that disc. 
First, $\mathcal D_x$ is contractible. Because we are working with germs, we may as well consider these as embeddings of discs into $\Bbb R^n$ so that $f(0) = 0$ and $df_0 = \text{Id}$. This space of (germs of) discs is contractible, via the following homotopy: $$f_t(x) = f((1-t)x)/(1-t) \;\;\;\;\;\text{ for } t<1,$$ $$f_1(x) = \text{Id},$$ where by the identity I mean the canonical inclusion $D^n \hookrightarrow \Bbb R^n$; the point is that $\lim_{t \to 1} f_t$ is precisely the derivative of $f$ at $0$. 
The stabilizer of any one fixed germ is the space of diffeomorphisms that fix a neighborhood of $x$; call this $\text{Diff}_U(S^n)$. We have just seenm that $\text{Diff}_{U(x)}(S^n) \simeq \text{Diff}_{T_x}(S^n)$. 
Note that the above procedure in fact produces an isotopy from any one (germ of a) disc to another. By the isotopy extension theorem, this implies that $\text{Diff}_{T_x}(S^n)$ acts transitively on this space, as desired.
3) Now clearly by "unfurling" at the basepoint, $\text{Diff}_{U(x)}(S^n) \cong \text{Diff}_{U(\partial)}(D^n)$, the space of diffeomorphisms of $D^n$ that fix a neighborhood of the boundary. The procedure here is just the same as before: $\text{Diff}(D^n,\partial D^n)$ acts transitively on the space of 'collars', germs of embeddings $S^{n-1} \times [0,1) \hookrightarrow D^n$ that are the identity on the boundary. (The content of this is essentially that the space of germs of diffeomorphisms $[0,1) \to [0,1)$ is contractible; you could think of this as a version of the Alexander trick that doesn't extend across the whole of the sphere, only a neighborhood of the boundary.) The stabilizer of a fixed germ is precisely $\text{Diff}_{U(\partial)}(D^n)$. So finally, we have $$\text{Diff}_{T_x}(S^n) \simeq \text{Diff}_{U(x)}(S^n) = \text{Diff}_{U(\partial)}(D^n) \simeq \text{Diff}(D^n, \partial D^n).$$ This is the desired result.
A: Let's say that in a diffeomorphism $S^n = D^n/ \partial D^n$, the image of $\partial D^n$ is $x_0$.
Take a diffeomorphism $f$ of $S^n$. Choose $g \in O(n+1)$ such that $g(f(x_0)=x_0$. Then $g \circ f$ identifies with a diffeomorphism of $D^n$ that fixes $\partial D^n$.
Or maybe the other sens is easier : a diffeomorphim $\phi$ of $D^n$ rel. to $\partial D^n$ identifies with a diffeomorphism of $S^n$ that fixes $x_0$. Then composing with a $g \in O(n+1)$, we get a diffeomorphim of $S^n$. And since the action of $O(n+1)$ on $S^n$ is transitive, we get by this way all the diffeomorphism of $S^n$.
