public CompletableFuture<MediaConfigureSidecarResponse> uploadAlbum(List<SidecarInfo> infos,
            MediaConfigureSidecarPayload payload) {
        List<CompletableFuture<?>> uploadFutures =
                infos.stream().map(s -> s.upload(client)).collect(Collectors.toList());
        payload.children_metadata()
                .addAll(infos.stream().map(SidecarInfo::metadata).collect(Collectors.toList()));
        return CompletableFuture
                .allOf(uploadFutures.toArray(new CompletableFuture[uploadFutures.size()]))
                .thenCompose(res -> MediaAction.configureAlbumToTimeline(client, payload));
    }
Upload video with timeout before upload finish request

@param videoData video file bytes
@param coverData cover file bytes
@param payload media payload
@param uploadFinishTimeoutSeconds timeout before upload finish in seconds
@return completable future of MediaConfigureTimelineResponse
src/main/java/com/github/instagram4j/instagram4j/actions/timeline/TimelineAction.java