I try to upload some videos to youtube. Somewhere in the stack it comes down to a `http.Client`. This part somehow behaves weird.

The request and everything is created inside the youtube package.

After doing my request in the end it fails with: 

```
Error uploading video: Post https://www.googleapis.com/upload/youtube/v3/videos?alt=json&part=snippet%2Cstatus&uploadType=multipart: Post : unsupported protocol scheme ""

```

I debugged the library a bit and printed the `URL.Scheme` content. As a string the result is `https` and in `[]byte` `[104 116 116 112 115]`

<https://golang.org/src/net/http/transport.go> on line 288 is the location where the error is thrown.

<https://godoc.org/google.golang.org/api/youtube/v3> the library I use

My code where I prepare/upload the video:

```
//create video struct which holds info about the video
video := &yt3.Video{
//TODO: set all required video info
}

//create the insert call
insertCall := service.Videos.Insert("snippet,status", video)

//attach media data to the call
insertCall = insertCall.Media(tmp, googleapi.ChunkSize(1*1024*1024)) //1MB chunk

video, err = insertCall.Do()
if err != nil {
    log.Printf("Error uploading video: %v", err)
    return
    //return errgo.Notef(err, "Failed to upload to youtube")
}

```

So I have not idea why the schema check fails.
['https://Stackoverflow.com/questions/37548915', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/450598/']
Ok, I figured it out. The problem was not the call to YouTube itself.

The library tried to refresh the token in the background but there was something wrong with the `TokenURL`.

Ensuring there is a valid URL fixed the problem.

A nicer error message would have helped a lot, but well...
This will probably apply to very, very few who arrive here: but my problem was that a [RoundTripper](https://pkg.go.dev/net/http#RoundTripper) was overriding the Host field with an empty string.