Apply text filter (not text format) in Twig
If those HTML are mostly or all static, you could consider implementing your own tokens via hook_token_info() and hook_tokens() in your custom module. 

This way, you would avoid any potential risks, and accidentally malformed markup... and would have to full control on the replaced and returned markup.

Your authors would add a token like this in the content: [custom:facebookpost:12345]

... and your token could return an embedded Facebook post markup in return.

In my experience this method works much better than any other alternatives, mostly because: 


those embed widgets usually have custom tags and/or tag attributes which may not be compatible with CKEditor settings, text formats, etc.
embedding those widgets directly, would make maintaining content much harder on the long run. 
provider(s) may change the embed markup. (Consider updating 100s or thousands of content entries via find &amp; replace vs. updating the embed markup in token definition only)
and it's not a hack.