Example usage for com.google.api.client.googleapis.media MediaHttpDownloaderProgressListener MediaHttpDownloaderProgressListener

List of usage examples for com.google.api.client.googleapis.media MediaHttpDownloaderProgressListener MediaHttpDownloaderProgressListener

Introduction

In this page you can find the example usage for com.google.api.client.googleapis.media MediaHttpDownloaderProgressListener MediaHttpDownloaderProgressListener.

Prototype

MediaHttpDownloaderProgressListener

Source Link

Usage

From source file:api.Captions.java

License:Apache License

/**
 * Saves caption track to file. (Not permitted for most videos.)
 *
 * @param captionId id/* ww w .ja v a  2  s  . c  om*/
 * @throws IOException (can be thrown by caption.download method)
 */
private static void downloadCaption(String captionId) throws IOException {
    Download captionDownload = yt.captions().download(captionId).setTfmt(SRT);
    MediaHttpDownloader downloader = captionDownload.getMediaHttpDownloader();
    downloader.setDirectDownloadEnabled(false);
    MediaHttpDownloaderProgressListener downloadProgressListener = new MediaHttpDownloaderProgressListener() {
        public void progressChanged(MediaHttpDownloader downloader) throws IOException {
            switch (downloader.getDownloadState()) {
            case MEDIA_IN_PROGRESS:
                System.out.println("Download in progress");
                System.out.println("Download percentage: " + downloader.getProgress());
                break;
            // This value is set after the entire media file has
            //  been successfully downloaded.
            case MEDIA_COMPLETE:
                System.out.println("Download Completed!");
                break;
            // This value indicates that the download process has
            //  not started yet.
            case NOT_STARTED:
                System.out.println("Download Not Started!");
                break;
            }
        }
    };
    downloader.setProgressListener(downloadProgressListener);

    OutputStream outputFile = new FileOutputStream("captionFile.srt");
    captionDownload.executeAndDownloadTo(outputFile);
}

From source file:com.mrmq.uyoutube.data.Captions.java

License:Apache License

/**
 * Downloads a caption track for a YouTube video. (captions.download)
 *
 * @param captionId The id parameter specifies the caption ID for the resource
 * that is being downloaded. In a caption resource, the id property specifies the
 * caption track's ID./*from  ww  w  .  ja v a 2  s.c  o m*/
 * @throws IOException
 */
private static void downloadCaption(String captionId) throws IOException {
    // Create an API request to the YouTube Data API's captions.download
    // method to download an existing caption track.
    Download captionDownload = youtube.captions().download(captionId).setTfmt(SRT);

    // Set the download type and add an event listener.
    MediaHttpDownloader downloader = captionDownload.getMediaHttpDownloader();

    // Indicate whether direct media download is enabled. A value of
    // "True" indicates that direct media download is enabled and that
    // the entire media content will be downloaded in a single request.
    // A value of "False," which is the default, indicates that the
    // request will use the resumable media download protocol, which
    // supports the ability to resume a download operation after a
    // network interruption or other transmission failure, saving
    // time and bandwidth in the event of network failures.
    downloader.setDirectDownloadEnabled(false);

    // Set the download state for the caption track file.
    MediaHttpDownloaderProgressListener downloadProgressListener = new MediaHttpDownloaderProgressListener() {
        @Override
        public void progressChanged(MediaHttpDownloader downloader) throws IOException {
            switch (downloader.getDownloadState()) {
            case MEDIA_IN_PROGRESS:
                System.out.println("Download in progress");
                System.out.println("Download percentage: " + downloader.getProgress());
                break;
            // This value is set after the entire media file has
            //  been successfully downloaded.
            case MEDIA_COMPLETE:
                System.out.println("Download Completed!");
                break;
            // This value indicates that the download process has
            //  not started yet.
            case NOT_STARTED:
                System.out.println("Download Not Started!");
                break;
            }
        }
    };
    downloader.setProgressListener(downloadProgressListener);

    OutputStream outputFile = new FileOutputStream("captionFile.srt");
    // Download the caption track.
    captionDownload.executeAndDownloadTo(outputFile);
}

From source file:de.jlo.talendcomp.google.drive.DriveHelper.java

License:Apache License

private void downloadByUrl(String fileDownloadUrl, String localFilePath, boolean createDirs) throws Exception {
    checkPrerequisits();/*from w w w . j a  v  a  2s  .  c  o  m*/
    lastDownloadedFilePath = null;
    lastDownloadedFileSize = 0;
    File localFile = new File(localFilePath);
    if (createDirs && localFile.getParentFile().exists() == false) {
        if (localFile.getParentFile().mkdirs() == false) {
            throw new Exception("Unable to create parent directory: " + localFile.getParent());
        }
    }
    OutputStream fileOut = new BufferedOutputStream(new FileOutputStream(localFile));
    try {
        MediaHttpDownloader downloader = new MediaHttpDownloader(HTTP_TRANSPORT,
                driveService.getRequestFactory().getInitializer());
        downloader.setDirectDownloadEnabled(false);
        downloader.setProgressListener(new MediaHttpDownloaderProgressListener() {

            @Override
            public void progressChanged(MediaHttpDownloader downloader) throws IOException {
                info("File status: " + downloader.getDownloadState());
                info("Bytes downloaded:" + downloader.getNumBytesDownloaded());
            }

        });
        downloader.download(new GenericUrl(fileDownloadUrl), fileOut);
        if (fileOut != null) {
            fileOut.flush();
            fileOut.close();
            fileOut = null;
        }
        lastDownloadedFilePath = localFile.getAbsolutePath();
        lastDownloadedFileSize = localFile.length();
    } catch (Exception e) {
        if (fileOut != null) {
            fileOut.flush();
            fileOut.close();
            fileOut = null;
        }
        Thread.sleep(200);
        if (localFile.canWrite()) {
            System.err.println("Download failed. Remove incomplete file: " + localFile.getAbsolutePath());
            localFile.delete();
        }
        throw e;
    }
}