open Str open Ssl open Http_client.Convenience open Https_client;; Ssl.init(); Http_client.Convenience.configure_pipeline (fun p -> let ctx = Ssl.create_context Ssl.TLSv1 Ssl.Client_context in let tct = Https_client.https_transport_channel_type ctx in p # configure_transport Http_client.https_cb_id tct ) (* Regexp required here *) let is_youtube_url url = let regexp = Str.regexp "\\(https?\\://\\)?\\(www\\.\\)?\\(youtube\\.com\\)\\|\\(youtu\\.be\\)/.+" in Str.string_match regexp url 0 let get_body url = try Http_client.Convenience.http_get url with | Http_client.Http_error e -> "http error /o\\" | Failure f -> "http fail lol" (* Maybe have a list of functions and * iter on all the items in the list *) let evaluate str = match str with | str when is_youtube_url str -> get_body str | _ -> str;; try while true do print_string "> "; let line = read_line () in let answer = evaluate line in print_endline answer done with End_of_file -> print_endline "Bye!";;