public async Task <PlayingOrchestrateResult> PreperePlayWithCache(VideoId videoId)
        {
            if (!InternetConnection.IsInternet())
            {
                return(new PlayingOrchestrateResult(PlayingOrchestrateFailedReason.RequireNetworkConnection));
            }

            var preparePlayVideo = await _nicoVideoSessionProvider.PreparePlayVideoAsync(videoId);

            var commentSessionProvider = preparePlayVideo;
            var nicoVideoDetails       = preparePlayVideo?.GetVideoDetails();

            return(new PlayingOrchestrateResult(
                       new CachedVideoSessionProvider(_videoCacheManager.GetVideoCache(videoId), _niconicoSession),
                       commentSessionProvider,
                       nicoVideoDetails
                       ));
        }