I spent enough weekends on this that I turned it into a service: Ticksupply https://ticksupply.com
You pick any stream — currently supporting Binance spot, more exchanges coming — order books, trades, klines, depth updates, whatever the exchange supports. Ticksupply records every message. When you want data, you export a date range as gzipped CSV: nanosecond receipt timestamp + the raw exchange JSON. No normalization, no reshaping. The format is exactly what the exchange sends, so you can replay it directly as if it were a live WebSocket feed.
1707523275537000000,{"e":"trade","E":1707523275537,"s":"BTCUSDT","t":3412345678,"p":"42856.10","q":"0.00100",...}
There's a free trial if you want to try it out. There's also an API available: https://docs.ticksupply.comWhat do others here use for this? Own recorder, Cryptofeed, commercial data vendor, something else?