This is my Java Code to YouTube API for Live Streaming
LiveBroadcastSnippet broadcastSnippet = new LiveBroadcastSnippet(); broadcastSnippet.setTitle(name); broadcastSnippet.setDescription(description); broadcastSnippet.setScheduledStartTime(new DateTime(futureDate)); broadcastSnippet.set("categoryId",17); LiveBroadcastContentDetails contentDetails = new LiveBroadcastContentDetails(); MonitorStreamInfo monitorStream = new MonitorStreamInfo(); monitorStream.setEnableMonitorStream(true); contentDetails.setMonitorStream(monitorStream); contentDetails.setEnableAutoStart(true); contentDetails.setEnableAutoStop(false); contentDetails.setEnableEmbed(true); contentDetails.setEnableClosedCaptions(true); // Create LiveBroadcastStatus with privacy status. LiveBroadcastStatus status = new LiveBroadcastStatus(); status.setPrivacyStatus("public"); //status.setPrivacyStatus("unlisted"); LiveBroadcast broadcast = new LiveBroadcast(); broadcast.setKind("youtube#liveBroadcast"); broadcast.setSnippet(broadcastSnippet); broadcast.setStatus(status); broadcast.setContentDetails(contentDetails); LiveBroadcastMonetizationDetails monetizationDetails = new LiveBroadcastMonetizationDetails(); CuepointSchedule cuepointSchedule = new CuepointSchedule(); cuepointSchedule.setEnabled(true); monetizationDetails.setCuepointSchedule(cuepointSchedule); broadcast.setMonetizationDetails(monetizationDetails); // Create the insert request String[] lbInsert = {"snippet", "status","contentDetails", "monetizationDetails"}; YouTube.LiveBroadcasts.Insert liveBroadcastInsert = youtube .liveBroadcasts().insert(Arrays.asList(lbInsert), broadcast); // Request is executed and inserted broadcast is returned LiveBroadcast returnedBroadcast = liveBroadcastInsert.execute();
This code is working fine. But the issue I am facing is, it is not enabling Monetization On (true), it is always False, I have to enable it manually.
I guess this code that enables monetization for live streaming video.
LiveBroadcastMonetizationDetails monetizationDetails = new LiveBroadcastMonetizationDetails(); CuepointSchedule cuepointSchedule = new CuepointSchedule(); cuepointSchedule.setEnabled(true); monetizationDetails.setCuepointSchedule(cuepointSchedule); broadcast.setMonetizationDetails(monetizationDetails); // Create the insert request String[] lbInsert = {"snippet", "status","contentDetails", "monetizationDetails"}; YouTube.LiveBroadcasts.Insert liveBroadcastInsert = youtube .liveBroadcasts().insert(Arrays.asList(lbInsert), broadcast);
This is the return value I am getting
{"contentDetails":{"closedCaptionsType":"closedCaptionsHttpPost","enableAutoStart":true,"enableAutoStop":false,"enableClosedCaptions":true,"enableContentEncryption":false,"enableDvr":true,"enableEmbed":true,"enableLowLatency":false,"latencyPreference":"normal","monitorStream":{"broadcastStreamDelayMs":0,"embedHtml":"<iframe width=\"425\" height=\"344\" src=\"https://www.youtube.com/embed/tttt?autoplay=1&livemonitor=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>","enableMonitorStream":true},"projection":"rectangular","recordFromStart":true,"startWithSlate":false},"etag":"WJp38q19VZEauJyCUyTVdDiVUc8","id":"tttt","kind":"youtube#liveBroadcast","monetizationDetails":{}
Like to know whether I am doing any mistake ?