com.google.api.services.youtube.model.VideoSnippet Java Examples

The following examples show how to use com.google.api.services.youtube.model.VideoSnippet. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: YoutubeVideoDeserializer.java    From streams with Apache License 2.0 6 votes vote down vote up
/**
 * Given the raw JsonNode, construct a video snippet object.
 * @param node JsonNode
 * @return VideoSnippet
 */
private VideoSnippet buildSnippet(JsonNode node) {
  VideoSnippet snippet = new VideoSnippet();
  JsonNode snippetNode = node.get("snippet");

  snippet.setChannelId(snippetNode.get("channelId").asText());
  snippet.setChannelTitle(snippetNode.get("channelTitle").asText());
  snippet.setDescription(snippetNode.get("description").asText());
  snippet.setTitle(snippetNode.get("title").asText());
  snippet.setPublishedAt(new DateTime(snippetNode.get("publishedAt").get("value").asLong()));

  ThumbnailDetails thumbnailDetails = new ThumbnailDetails();
  for (JsonNode t : snippetNode.get("thumbnails")) {
    Thumbnail thumbnail = new Thumbnail();

    thumbnail.setHeight(t.get("height").asLong());
    thumbnail.setUrl(t.get("url").asText());
    thumbnail.setWidth(t.get("width").asLong());

    thumbnailDetails.setDefault(thumbnail);
  }

  snippet.setThumbnails(thumbnailDetails);

  return snippet;
}
 
Example #2
Source File: PlaylistCardAdapter.java    From wmn-safety with MIT License 5 votes vote down vote up
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
    if (mPlaylistVideos.size() == 0) {
        return;
    }

    final Video video = mPlaylistVideos.get(position);
    final VideoSnippet videoSnippet = video.getSnippet();

    holder.mTitleText.setText(videoSnippet.getTitle());

    Picasso.with(holder.mContext)
            .load(videoSnippet.getThumbnails().getHigh().getUrl())
            .placeholder(R.drawable.video_placeholder)
            .into(holder.mThumbnailImage);

    holder.mThumbnailImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(view.getContext(),PlayerActivity.class);
            intent.putExtra("videoID",video.getId());
            holder.mContext.startActivity(intent);
        }
    });


    if (mListener != null) {
        final String nextPageToken = mPlaylistVideos.getNextPageToken();
        if (!isEmpty(nextPageToken) && position == mPlaylistVideos.size() - 1) {
            holder.itemView.post(new Runnable() {
                @Override
                public void run() {
                    mListener.onLastItem(holder.getAdapterPosition(), nextPageToken);
                }
            });
        }
    }
}
 
Example #3
Source File: YouTubeSubscriptionServiceImpl.java    From JuniperBot with GNU General Public License v3.0 5 votes vote down vote up
@Override
protected WebhookMessage createMessage(Video video, YouTubeConnection connection) {
    MapPlaceholderResolver resolver = new MapPlaceholderResolver();
    resolver.put("channel", video.getSnippet().getChannelTitle());
    resolver.put("video", video.getSnippet().getTitle());
    resolver.put("link", getVideoUrl(video.getId()));
    String announce = connection.getAnnounceMessage();
    if (StringUtils.isBlank(announce)) {
        announce = getMessage(connection, "discord.youtube.announce");
    }
    String content = PLACEHOLDER.replacePlaceholders(announce, resolver);

    WebhookMessageBuilder builder = new WebhookMessageBuilder()
            .setContent(content);

    if (connection.isSendEmbed()) {
        WebhookEmbedBuilder embedBuilder = new WebhookEmbedBuilder();
        VideoSnippet snippet = video.getSnippet();
        embedBuilder.setAuthor(new WebhookEmbed.EmbedAuthor(snippet.getChannelTitle(),
                connection.getIconUrl(),
                getChannelUrl(snippet.getChannelId())));

        if (snippet.getThumbnails() != null && snippet.getThumbnails().getMedium() != null) {
            embedBuilder.setImageUrl(snippet.getThumbnails().getMedium().getUrl());
        }
        embedBuilder.setDescription(CommonUtils.mdLink(snippet.getTitle(), getVideoUrl(video.getId())));
        embedBuilder.setColor(Color.RED.getRGB());
        if (snippet.getPublishedAt() != null) {
            embedBuilder.setTimestamp(Instant.ofEpochMilli(snippet.getPublishedAt().getValue()));
        }

        builder.addEmbeds(embedBuilder.build());
    }
    return builder.build();
}
 
Example #4
Source File: YouTubeVideo.java    From youtube-comment-suite with MIT License 4 votes vote down vote up
/**
 * Used for refreshing
 *
 * @param item YouTube video object with snippet and statistics parts present
 */
public YouTubeVideo(Video item) {
    super(item.getId(), item.getSnippet().getTitle(), item.getSnippet().getThumbnails().getMedium().getUrl());
    setTypeId(YType.VIDEO);

    if (item.getSnippet() != null) {
        VideoSnippet snippet = item.getSnippet();

        this.channelId = snippet.getChannelId();
        this.description = snippet.getDescription();
        this.published = snippet.getPublishedAt().getValue();
    } else {
        logger.warn("Video snippet is null");
    }

    if (item.getStatistics() != null) {
        VideoStatistics stats = item.getStatistics();

        this.viewCount = Optional.ofNullable(stats.getViewCount())
                .orElse(BigInteger.ZERO)
                .longValue();

        // Likes and dislikes may be disabled on the video
        this.likes = Optional.ofNullable(stats.getLikeCount())
                .orElse(BigInteger.ZERO)
                .longValue();
        this.dislikes = Optional.ofNullable(stats.getDislikeCount())
                .orElse(BigInteger.ZERO)
                .longValue();

        // When comments are disabled, this value will be null on the video.
        // responseCode should also be 403 when when comment threads are grabbed during refresh.
        this.comments = Optional.ofNullable(stats.getCommentCount())
                .orElse(BigInteger.ZERO)
                .longValue();
    } else {
        logger.warn("Video statistics is null");
    }

    this.refreshedOn = System.currentTimeMillis();
}
 
Example #5
Source File: YouTubeVideo.java    From SkyTube with GNU General Public License v3.0 4 votes vote down vote up
/**
 * Constructor.
 */
public YouTubeVideo(Video video) {
	this.id = video.getId();

	VideoSnippet snippet = video.getSnippet();
	if (snippet != null) {
		this.title = snippet.getTitle();

		this.channel = new YouTubeChannel(snippet.getChannelId(), snippet.getChannelTitle());
		setPublishDate(snippet.getPublishedAt());

		if (snippet.getThumbnails() != null) {
			Thumbnail thumbnail = snippet.getThumbnails().getHigh();
			if (thumbnail != null) {
				this.thumbnailUrl = thumbnail.getUrl();
			}

			thumbnail = snippet.getThumbnails().getMaxres();
			if (thumbnail != null) {
				this.thumbnailMaxResUrl = thumbnail.getUrl();
			}
		}

		this.language = snippet.getDefaultAudioLanguage() != null ? snippet.getDefaultAudioLanguage()
				: (snippet.getDefaultLanguage());

		this.description = snippet.getDescription();
	}

	if (video.getContentDetails() != null) {
		setDuration(video.getContentDetails().getDuration());
		setIsLiveStream();
		setDurationInSeconds(video.getContentDetails().getDuration());
	}

	VideoStatistics statistics = video.getStatistics();
	if (statistics != null) {
		setLikeDislikeCount(statistics.getLikeCount() != null ? statistics.getLikeCount().longValue() : null, statistics.getDislikeCount() != null ? statistics.getDislikeCount().longValue() : null);

		setViewCount(statistics.getViewCount());
	}
}