Kotlin/TIL

Youtube API에서 받은 영상 재생

내손은개발 🐾 2024. 5. 22. 21:28
 

GitHub - PierfrancescoSoffritti/android-youtube-player: YouTube Player library for Android and Chromecast, stable and customizab

YouTube Player library for Android and Chromecast, stable and customizable. - PierfrancescoSoffritti/android-youtube-player

github.com

위에 있는 youtubePlayer를 사용했다.

위에 라이브러리를 확인해보면 해당 글이 있다.

 

아예 Android를 지원하지 않는 것은 아니다.

처음에는 ExoPlayer를 사용해서 youtube API에서 받아온 값으로 영상을 재생하려 했었다.

하지만 ExoPlayer는 youtube url를 사용해서 영상을 재생시킬 수 없다.

 

GitHub - HaarigerHarald/android-youtubeExtractor: Deprecated: Android based YouTube URL extractor and downloader

Deprecated: Android based YouTube URL extractor and downloader - HaarigerHarald/android-youtubeExtractor

github.com

여기 라이브러리를 사용하면 재생가능하도록 받아오는 방법이 있다.

 

방법은 있지만 잘 나온 라이브러리가 있기때문에  Youtube Player 라이브러리를 사용할 것이다.

깃헙 read.me를 확인해보면 이렇게 UI를 custom해서 사용가능하다고 나와있다.

이 부분에서 맘에 들어서 사용하려는 이유도 있었다.

 

그러면 사용은 어떻게 하지?

너무 간단하게 사용이 가능하다.

Youtube API에서 받아오는 'videoId'값을 넣으면 그냥 재생이 된다.

 

videos 엔드포인트에서는 id의 값

search 엔드포인트에서는 videoId 값

 

처음 올린 북마크의 순서대로 진행하면 된다.

 

사용법

1. implementation

    //videoPlayer
    implementation ("com.pierfrancescosoffritti.androidyoutubeplayer:core:12.1.0")

 

2. 사용

    private fun setUpYoutubePlayer(videoId: String){

        youTubePlayerView = binding.youtubePlayerView
        youTubePlayerView.enableAutomaticInitialization = false //초기화 수동
        lifecycle.addObserver(youTubePlayerView)

        val listener = object : AbstractYouTubePlayerListener() {
            override fun onReady(youTubePlayer: YouTubePlayer) {
                playerTracker = YouTubePlayerTracker()
                youTubePlayer.addListener(playerTracker)

                youTubePlayer.loadVideo(videoId, 0f)
            }
        }

        val options = IFramePlayerOptions
            .Builder()
            .controls(0)
            .build()
        youTubePlayerView.initialize(listener, options)
    }

videoId에 youtube  API에서 받아오는 videoId 값을 넣어주면 된다.

 

UI를 custom하고 싶다면 밑에 링크를 참고하면 된다.

 

How to customize the UI of an Android YouTube Player

Use the android-youtube-player API to build custom UIs for your YouTube Player

pierfrancesco-soffritti.medium.com

 

문제

UI를 custom이 가능하다고 나와있지만 UI 전체를 수정하는건 불가능하다.

제공해주는 기본적인 UI들을 전부 지울 수는 없다.

위에서 제공하는 UI는 커스텀이 가능하다.

여기서 IFramePlayerOptions에서 controls에 0을 줘서 YouTubePlayerView를 초기화할 수 있다.

해당 설정은 밑에 공식문서에서 확인할 수 있다.

 

YouTube 내장 플레이어 및 플레이어 매개변수  |  YouTube IFrame Player API  |  Google for Developers

YouTube 내장 플레이어 및 플레이어 매개변수 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 이 문서에서는 애플리케이션에 YouTube 플레이어를 삽입하는

developers.google.com

 

정말 안되나 찾아보는데 시간을 많이 썼다..

결론적으로는

 

Is there a way to hide youtubePlayer button, menu icon and title? · Issue #513 · PierfrancescoSoffritti/android-youtube-playe

I wanted to hide the youtube button , menu and title . I tried to hide them using the provided APi's but it doesn't seem to work. youTubePlayerView.getPlayerUIController().showVideoTitle(false); yo...

github.com

라이브러리 제작자가 말하길 “YouTube에서 웹 라이브러리를 변경했으며 상단의 UI 구성요소는 더 이상 제거 할 수 없다.”

 

심지어

Player 모양과 느낌을 변경하고 앱을 PlayStore에 등록하는 경우 문제가 될 수 있다고 한다.

'Kotlin > TIL' 카테고리의 다른 글

Visibility 코드 단순화  (0) 2024.06.02
Android - Github API 검색 (TIL 05.08)  (0) 2024.05.08
TIL (05.07)  (0) 2024.05.07
Postman 사용하기 (TIL 05.02)  (0) 2024.05.02
Android -GoogleMap 사용 (TIL 05.01)  (0) 2024.05.01