Texturing a gas giant / moving noise
Texture coordinates are an array of three values for X,Y and Z.

Colour is an array of three (or four with alpha) values for R,G and B.

While we are taught to only connect matching sockets in a node tree, some differing sockets are interchangeable, colour and vector are one of these interchangeable types.

What this means is that we can connect a noise texture and texture coordinates into a mixRGB node and then connect that to the vector input of another node. This distorts the texture coordinates in a way that can give results like what you are after. You can then add another mixRGB to combine a second texture, and third... 



The SpaceVFX tutorial explains this in more detail, including using it to also make solid planets by defining water and land then add some mountains and rivers to the land.