Find all rational solutions of $$x^2(x+1)(x^2+1)(x-1)=2(y+1)(y-1).$$ Clearly the following six solutions hold: $$(x,y)=(1,1),(-1,-1),(-1,1),(1,-1),(0,1),(0,-1)$$
But how to find all rational solutions?
Find all rational solutions of $$x^2(x+1)(x^2+1)(x-1)=2(y+1)(y-1).$$ Clearly the following six solutions hold: $$(x,y)=(1,1),(-1,-1),(-1,1),(1,-1),(0,1),(0,-1)$$
But how to find all rational solutions?
This is no complete answer yet, but may get expanded to one in due course.
First we search for points on the curve, which is isomorphic to $$C \colon y^2 = 2(x^6 - x^2 + 2);$$ this produces points with $x \in \{-3, -1, -4/7, 0, 4/7, 1, 3\}$ as already mentioned in the comments. It was also mentioned that the rank of the Mordell-Weil group of the Jacobian variety of $C$ is 3, so that we cannot apply Chabauty's method directly. What we can try to do is to use a covering collection plus Elliptic Curve Chabauty.
Let $K = \mathbb Q(a)$ with $a^3 - a + 2 = 0$; then $$2(x^6 - x^2 + 2) = 2 (x^2 - a) (x^4 + a x^2 + a^2 - 1).$$ We can compute the 2-Selmer set of $C$ and find that it has three elements that are all images of known rational points on $C$. If my quick computation is correct, then we obtain two coverings of $C$ of the form $$D_j \colon u^2 = \delta_j (x^2 - a), \quad v^2 = 2 \delta_j (x^4 + a x^2 + a^2 - 1)$$ with $\delta_1 = 1 - a$ and $\delta_2 = -a$, such that each rational point on $C$ lifts to a $K$-point on $D_1$ or $D_2$ (with the same $x$-coordinate). Forgetting the first equation, we get morphisms $D_j \to E_j$, where $E_j$ is an elliptic curve given by the second equation. We are interested in points in $E_j(K)$ whose $x$-coordinate is in $\mathbb Q$; this is the setting for Elliptic Curve Chabauty. According to Magma, the Mordell-Weil ranks of $E_1$ and $E_2$ over $K$ are 2 and 1, so the relevant Chabauty condition (rank is smaller than degree of $K$) is satisfied. It remains to actually do the computation, which right now I have no time to do. Almost certainly the result will be that $C$ only has the known rational points.
EDIT: I have now done the computation (with Magma), and the result is as expected: the rational points on $C$ lifting to a $K$-rational point on $D_1$ have $x$-coordinate in $\{-3, -1, 1, 3\}$ and the rational points on $C$ lifting to a $K$-rational point on $D_2$ have $x$-coordinate in $\{-4/7, 0, 4/7\}$. So there are no unknown rational points on $C$.
Here is Magma code for the computations (it can be run in the Magma online calculator):
P<x> := PolynomialRing(Rationals());
f := x^2*(x+1)*(x^2+1)*(x-1) + 2;
C := HyperellipticCurve(2*f);
K<a> := NumberField(x^3-x+2);
f1 := ExactQuotient(PolynomialRing(K)!f, Polynomial([-a, 0, 1]));
// compute 2-Selmer set of C
deltas, m := TwoCoverDescent(C);
A<th> := Domain(m);
// find the possible square classes of x(P)^2 - a in K, for P in C(Q)
invol := hom<A -> A | -th>;
ndeltas := [d*invol(d) where d := dd @@ m : dd in deltas];
assert Set(ndeltas) eq {1-th^2, -th^2}; // note that a = th^2, so this is {1-a, -a}
// set up the two elliptic quotients as hyperelliptic curves
D1 := HyperellipticCurve(2*(1-a)*f1);
D2 := HyperellipticCurve(2*(-a)*f1);
// find isomorphic elliptic curve, given by integral Weierstrass model
E1, D1toE1 := EllipticCurve(D1, Points(D1, 1)[1]);
E1i, toE1i := IntegralModel(E1);
// determine E1(K)
MWE1, mMWE1 := MordellWeilGroup(E1i);
P1 := ProjectiveSpace(Rationals(), 1);
// set up x-coordinate map in terms of E1i
E1itoP1 := Expand(Inverse(toE1i)*Inverse(D1toE1)*map<D1 -> P1 | [D1.1, D1.3]>);
// run Elliptic Curve Chabauty
ptsMWE1, N1 := Chabauty(map<MWE1 -> E1i | a :-> &+[Eltseq(a)[i]*mMWE1(MWE1.i) : i in [1..Ngens(MWE1)]]>, E1itoP1);
// make sure known subgroup of E1(K) is saturated at the primes dividing N1
newgens := Saturation([mMWE1(g) : g in OrderedGenerators(MWE1)], Max(PrimeDivisors(N1)));
assert newgens eq [mMWE1(g) : g in OrderedGenerators(MWE1)];
// find the x-coordinates of the points
{E1itoP1(mMWE1(pt)) : pt in ptsMWE1};
// ==> { (3 : 1), (1 : 1), (-1 : 1), (-3 : 1) }
// do the same for the other covering curve
E2 := EllipticCurve(D2, Points(D2, 0)[1]);
E2, D2toE2 := EllipticCurve(D2, Points(D2, 0)[1]);
E2i, toE2i := IntegralModel(E2);
E2itoP1 := Expand(Inverse(toE2i)*Inverse(D2toE2)*map<D2 -> P1 | [D2.1, D2.3]>);
MWE2, mMWE2 := MordellWeilGroup(E2i);
ptsMWE2, N2 := Chabauty(map<MWE2 -> E2i | a :-> &+[Eltseq(a)[i]*mMWE2(MWE2.i) : i in [1..Ngens(MWE2)]]>, E2itoP1);
newgens := Saturation([mMWE2(g) : g in OrderedGenerators(MWE2)], Max(PrimeDivisors(N2)));
assert newgens eq [mMWE2(g) : g in OrderedGenerators(MWE2)];
{E2itoP1(mMWE2(pt)) : pt in ptsMWE2};
// ==> { (0 : 1), (4/7 : 1), (-4/7 : 1) }