Hello,
It is not required to play a stream for taking snapshots.
Please see the Web SDK example: Stream Snapshot (code). stream.snapshot() is used for taking snapshot.
Or, REST method /stream/snapshot can be used.
Also, snapshots can be taken automatically for every published stream.