Assume your spline is given as a sequence of cubic polynomial segments defined through their endpoints $p_{i}^0, p_{i}^1$ and derivatives at those $d_{i}^0,d_{i}^1$ for $1\leq i \leq n$. That is, you can parametrize each piece as the following cubic polynomial curve for $t\in [0,1]$:
$$u_i(t) = (2t^3 - 3t^2 +1) p_{i}^0+ (t^3 - 2t^2+t) d_{i}^0 + (-2t^3 + 3t^2) p_{i}^1 + (t^3 - t^2) d_{i}^1,$$
and you can parametrize the whole spline as:
$$u(t) = u_i(t-(i-1)), \quad t \in [i-1, i].$$
$G_1$ means that the endpoints between two subsequent segments coincide $p_{i}^1=p_{i+1}^0$ (i.e. the spline is $C_0$), and that the derivatives at the inner nodes are parallel $\exists \kappa_i\ne 0, d_{i}^1 = \kappa_i d_{i+1}^0$. Finally, the points $p_{1}^0$, $p_{n}^1$, and the derivatives $d_{1}^0$, $d_{n}^1$, can be set as unrelated unless you have a looping curve. To turn this into a $C_1$ curve you need to make the derivatives equal. There are however infinitely many ways to do so, and none of those are considered canonical as far as I am aware. Let $f$ be the new tangents, some variants I can suggest are: use a linear combination of both with a fixed global parameter $\theta\in[0,1]$: $f_i^{1} = f_{i+1}^0 = \theta d_i^1 + (1-\theta)d_{i+1}^0$, e.g. you could take the average by setting $\theta = 1/2$. Another option would be to compute the derivative lengths that make the spline as close as possible to a $C_2$ spline. One way to formulate something like this is to find the spline $u$ that minimizes the squared gradient magnitude $\int_{0}^{n} \|u'(t)\|^2 \, dt$ under the constraints that $f_{i}^1=f_{i+1}^0 \propto d_i^1$. You can split the integral as a sum of the integrals over all segments, then you can take the derivative of those, take the squared magnitude, and then integrate. Taking into account the constraints this will be a function only of the lengths of the tangents, you can then take the derivatives w.r.t. those and set them equal to zero to get a system for the solution. I believe the system you will get is linear, so this shouldn't be too hard to solve.
Edit: The way I wrote this corresponds to a uniform parametrization, you can make this nonuniform with some modifications.