Can a materiel be loaded via the streaming assets ?

You can load textures via streaming assets

            Texture2D tex = new Texture2D(2, 2);

            byte[] imgData;
            string url = item.m_Value;
            //Check if we should use UnityWebRequest or File.ReadAllBytes
            if (url.Contains("://") || url.Contains(":///"))
            {
                UnityWebRequest www = UnityWebRequest.Get(url);
                yield return www.SendWebRequest();
                imgData = www.downloadHandler.data;
            }
            else
            {
                imgData = File.ReadAllBytes(url);
            }

            //Load raw Data into Texture2D
            tex.LoadImage(imgData);

I cant see anyway to load a materiel, is there?

There is no runtime readable file format for materials but you can take a look at assetbundels.
A alternative could be to define all the information of a material in a text / json / xml file and read it and create a material at runtime based on the read data.