/**
  * Start the actual broadcast
  * @throws LiveBroadcastOutputException
  * @throws \Martin1982\LiveBroadcastBundle\Exception\LiveBroadcastInputException
  */
 protected function startBroadcast()
 {
     $media = $this->plannedBroadcast->getInput();
     $input = $this->inputService->getInputInterface($media)->generateInputCmd();
     /** @var OutputYouTube $outputService */
     $outputService = $this->outputService->getOutputInterface($this->channel);
     $outputService->setStreamUrl($this->youTubeApiService->getStreamUrl($this->plannedBroadcast, $this->channel));
     $output = $outputService->generateOutputCmd();
     $this->logger->info('YouTube start broadcast', array('broadcast_id' => $this->plannedBroadcast->getBroadcastId()));
     $this->command->startProcess($input, $output, array('broadcast_id' => $this->plannedBroadcast->getBroadcastId(), 'channel_id' => $this->channel->getChannelId()));
 }
 /**
  * Test the isEntityConfigured method
  */
 public function testIsEntityConfigured()
 {
     $channel = new ChannelYouTube();
     $configuration = array();
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube'] = array();
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['client_id'] = null;
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['client_secret'] = null;
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['redirect_route'] = null;
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['client_id'] = 'id';
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['client_secret'] = 'secret';
     self::assertFalse($channel->isEntityConfigured($configuration));
     $configuration['youtube']['redirect_route'] = 'route';
     self::assertTrue($channel->isEntityConfigured($configuration));
 }
 /**
  * @param LiveBroadcast  $liveBroadcast
  * @param ChannelYouTube $channel
  * @param string $status
  *
  * @return \Google_Service_YouTube_LiveBroadcast
  */
 protected function setupLivestream(LiveBroadcast $liveBroadcast, ChannelYouTube $channel, $status = 'public')
 {
     $this->getAccessToken($channel->getRefreshToken());
     $broadcastResponse = $this->updateBroadcast($liveBroadcast, $status);
     $streamsResponse = $this->createStream($liveBroadcast->getName());
     // Bind Broadcast and Stream
     $bindBroadcastResponse = $this->youTubeApiClient->liveBroadcasts->bind($broadcastResponse->getId(), 'id,contentDetails', array('streamId' => $streamsResponse->getId()));
     return $bindBroadcastResponse;
 }