2.6.13.7 Sympy. Time used: 0.528 (sec). Leaf size: 32
from sympy import * 
u = symbols("u") 
v = Function("v") 
ode = Eq((u**2 + 1)*v(u)*Derivative(v(u), u) + v(u)**2 + 1,0) 
ics = {} 
dsolve(ode,func=v(u),ics=ics)
 
\begin{gather*} \begin {aligned} \left [ v{\left (u \right )} = - \sqrt {C_{1} e^{- 2 \operatorname {atan}{\left (u \right )}} - 1}, \ v{\left (u \right )} = \sqrt {C_{1} e^{- 2 \operatorname {atan}{\left (u \right )}} - 1}\right ] \end {aligned} \end{gather*}
Python version: 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] 
Sympy version 1.14.0
 
classify_ode(ode,func=v(u)) 
 
('factorable', 'separable', '1st_exact', 'Bernoulli', 'almost_linear', '1st_power_series', 'lie_group', 'separable_Integral', '1st_exact_Integral', 'Bernoulli_Integral', 'almost_linear_Integral')