컨텍스트 Android Studio (Java)를 사용하고 있습니다. 나는 주어진 재생 목록의 모든 비디오를 얻고 싶습니다 (또는 50, 나는 다른 모든 것을 얻을 것입니다).Java에서 YouTube 재생 목록의 모든 동영상 가져 오기
문제 나는 https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=PLiEwZfNgb4fVrRzTonlVEMj6DB2Nmzg2M&key=AIzaSyC2_YRcTE9916fsmA0_KRnef43GbLzz8m0
같은 URL을 사용하는 사람들을 볼 수 있지만 나는 자바에서이를 구현하는 방법을 모르겠어요. 좀 TUTO를 따라 내가 좋아하는 완전히 다른 정보를 얻을 수있는 방법 얻었다 :
YouTube.Search.List query;
query = youtube.search().list("id,snippet");
query.setKey(MY_API_KEY);
query.setMaxResults((long)20);
query.setType("video");
query.setFields("items(id/videoId,snippet/title,snippet/description,snippet/thumbnails/default/url)");
을 그리고 난 정말 내가 검색보다는 다른 것을 얻는 방법을 이해하지 않습니다. 문서의 대부분은 영어로만 ...
편집 좋아, 내가, 내가 거의 해결책을 찾은 것 같아 시도를 계속하지만이 오류가 발생했습니다. { "code" : 400, "errors" : [ { "domain" : "global", "location" : "fields", "locationType" : "parameter", "message" : "Invalid field selection videoId", "reason" : "invalidParameter" } ], "message" : "Invalid field selection videoId" }
EDIT 2 감사합니다 : 마티 Woudstra 여기
private YouTube youtube;
private YouTube.PlaylistItems.List playlistItemRequest;
private String PLAYLIST_ID = "PLiEwZfNgb4fVrRzTonlVEMj6DB2Nmzg2M";
public static final String KEY = "AIzaSyC2_YRcTE9916fsmA0_KRnef43GbLzz8m0";
// Constructor
public YoutubeConnector(Context context)
{
youtube = new YouTube.Builder(new NetHttpTransport(),
new JacksonFactory(), new HttpRequestInitializer()
{
@Override
public void initialize(HttpRequest hr) throws IOException {}
}).setApplicationName(context.getString(R.string.app_name)).build();
}
public List<VideoItem> result()
{
List<PlaylistItem> playlistItemList = new ArrayList<PlaylistItem>();
try
{
/* HERE MUST BE MY PROBLEM ! */
playlistItemRequest = youtube.playlistItems().list("snippet");
playlistItemRequest.setPlaylistId(PLAYLIST_ID);
playlistItemRequest.setFields("items(id/videoId,snippet/title,snippet/description,snippet/thumbnails/default/url),nextPageToken,pageInfo");
playlistItemRequest.setKey(KEY);
String nextToken = "";
do {
playlistItemRequest.setPageToken(nextToken);
PlaylistItemListResponse playlistItemResult = playlistItemRequest.execute();
playlistItemList.addAll(playlistItemResult.getItems());
nextToken = playlistItemResult.getNextPageToken();
} while (nextToken != null);
}catch(IOException e)
{
Log.d("YC", "Could not initialize: "+e);
}
//[...]
}
은 내가 가진 오류입니다. 올바른 라인이었다
playlistItemRequest = youtube.playlistItems().list("snippet,contentDetails");
//[...]
playlistItemRequest.setFields("items(snippet/title,snippet/description,snippet/thumbnails/default/url,contentDetails/videoId),nextPageToken,pageInfo");
//[...]
videoItem.setId(item.getContentDetails().getVideoId());
귀하의 질문에 대한 답변을 추가했습니다. 유용하다고 생각하길 바랍니다. – Teocci