Does meta-data need to be sanitized?

Yes, it’s a good practice to sanitize input and escape output. It’s important to use the correct function, though, so that you don’t inadvertently mess up your data.

Since it’s for a URL, use esc_url_raw() (it is specifically for db usage).

(Note: it may seem odd using a function with the “esc_” stem for sanitizing, since I just stated sanitize input, escape output, but this particular function specifically the deprecated sanitize_url() function.)