code: func (v *Video) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
  	params := map[string]string{
  		"chat_id": to.Recipient(),
  		"caption": v.Caption,
  	}
  
  	if v.Duration != 0 {
  		params["duration"] = strconv.Itoa(v.Duration)
  	}
  	if v.Width != 0 {
  		params["width"] = strconv.Itoa(v.Width)
  	}
  	if v.Height != 0 {
  		params["height"] = strconv.Itoa(v.Height)
  	}
  	if v.SupportsStreaming {
  		params["supports_streaming"] = "true"
  	}
  
  	embedSendOptions(params, opt)
  
  	msg, err := b.sendObject(&v.File, "video", params, thumbnailToFilemap(v.Thumbnail))
  	if err != nil {
  		return nil, err
  	}
  
  	if vid := msg.Video; vid != nil {
  		vid.File.stealRef(&v.File)
  		*v = *vid
  	} else if doc := msg.Document; doc != nil {
  		// If video has no sound, Telegram can turn it into Document (GIF)
  		doc.File.stealRef(&v.File)
  
  		v.Caption = doc.Caption
  		v.MIME = doc.MIME
  		v.Thumbnail = doc.Thumbnail
  	}
  
  	return msg, nil
  }
docs: // Send delivers media through bot b to recipient.