To avoid the texts to be stretched on the cube faces, you can use separate objects (either text objects or planes with textures and transparency) and parent them to the vertices of the cube:
For the cube animation, have used 4 empties that move up down and are scaled to simulate the 4d effect. This could have been done with bones too. This is the same principle:
Each of these 4 empties is hook (modifier) for the corresponding horizontal face of the 4d cube.
For the texts objects (that, again, could be planes with textures intead), I used two cases:
For the 4 horizontal planes, the texts are simply parented to the corresponding empties. This is easier.
For the other ones that "rotate" on sides, vertex parenting is used. To do it:
Place the text along the face.
Shift select the cube, so that the cube is active and the text still selected.
Enter edit mode, select 3 vertices of the plane the text is aligned to, and use CtrlP to make vertex parent.
This parenting could give a good result, or not. To check that, animate the cube and look how the text behaves.
If the rotation is not good, make vertex parent again but choose 3 other vertices.
You can enhance the setting adjusting the texts positions and envetually give the texts some animation (scale up or down for instance).