                 _ media: [Media],
                 to target: UploadTarget,
                 albumId: String,
-                caption: String = "",
+                caption: String? = nil,
                 location: CLLocationCoordinate2D? = nil,
                 config: Config = .default,
                 uploadTimeout: TimeInterval = 30

            //Upload local video file
            public static func fromFile(
                _ media: Media,
                name: String = "No name",
                description: String = "",
                groupId: String = "",
                albumId: String = "",
                isPrivate: Bool = false,
                isWallPost: Bool = false,
                isRepeat: Bool = false,

                    .request(with: config)
            }
        }
        
        ///Upload audio
        public static func audio(
            _ media: Media,
            artist: String? = nil,
            title: String? = nil,
            config: Config = .default,
            uploadTimeout: TimeInterval = 30
            ) -> Request {
            return VK.Api.Audio.getUploadServer(.empty)
                .request(with: config)
                .next {
                    VK.Api.Audio.save([
                        .audio: $0["audio"].stringValue,
                        .server: $0["server"].stringValue,
                        .hash: $0["hash"].stringValue,
                        .artist: artist,
                        .title: title
                        ])
                        .request(with: config.mutated(timeout: uploadTimeout))
            }
        }
//
//        ///Upload document
//        public static func document(
