Sử dụng Youtube API toàn tập trên Android

Xin chào các bạn, hôm nay mình xin hướng dẫn về cách hiển thị video Youtube lên ứng dụng Android, cách lấy Youtube API và cách xử lí json của API đó. OK, trước hết, hãy xem video kết quả sau khi hoàn thành bài viết này nhé các bạn

Đăng kí với Google Dev Console

1. Đầu tiên bạn vào Google Dev Console, và tạo 1 project mới

Screen Shot 2016-03-19 at 5.37.13 PM

2. Sau đó chọn Enable and manage APIs

Screen Shot 2016-03-19 at 5.38.49 PM

3. Sau đó tìm tới Youtube Data API và nhấn vào nó chọn Enable

Screen Shot 2016-03-19 at 5.39.12 PM

4. Tiếp theo nhấn vào Go to Credentials

Screen Shot 2016-03-19 at 5.39.40 PM

5. Chọn API key

Screen Shot 2016-03-19 at 5.39.53 PM

6. Chọn Android Key

Screen Shot 2016-03-19 at 5.40.09 PM

7. Điền đầy đủ package name của ứng dụng và SHA1 key của máy. Cái SHA1 các bạn tự google để biết nhé.

Screen Shot 2016-03-19 at 5.40.48 PM

8. Nhấn vào Create bạn sẽ nhận được API key dùng để request lên khi chạy video. Bạn lưu cái API key này vào đâu đó để tí sử dụng nhé

Screen Shot 2016-03-19 at 5.41.03 PM

9. Tiếp theo để có thể sử dụng Youtube API bạn cần tạo Browser key, nhấn vào Create credentials chọn Browser key

Screen Shot 2016-03-19 at 5.41.39 PM

Bạn không cần điền gì cả, nhấn vào Create bạn sẽ nhận dc Browser key, lưu cái này vào nhé 🙂

Vậy là xong phần đăng kí rồi, giờ chúng ta tới với phần làm ứng dụng thôi

Xây dựng ứng dụng Android

1. Tạo 1 project mới nhé, tên package theo package bạn điền để lấy Android key ở bước trước nhé

2. Trước tiên bạn cần tải thư viện cho project này, Image Loader và Youtube API, download về và lấy 2 file jar để vào thư mục libs trong project

Screen Shot 2016-03-19 at 6.14.51 PM

3. Tiếp theo bạn vào build.gradle và thêm vào mục dependencies

Build để nó cài đặt nhé

4. Tiếp theo thêm quyền Internet vào file AndroidManifest.xml

5. Tạo 1 layout xml search_layout.xml như sau

Layout này chứa 1 ô EditText và 1 Button search để tìm kiếm video, và 1 ListView để hiển thị các video tìm được.

6. Tạo layout xml item_video.xml như sau

Layout này là hiển thị 1 hàng của listVideo bao gồm 1 ảnh và tiêu đề, thiếu drawable card_background_white  ở dưới đây

card_background_white.9

7. Tạo file Config.java như sau

Bạn cần chèn 2 key được lưu ở bước trước vào đây nhé 🙂

8. Tạo file Video.java như sau

Tạo 1 class Video có 3 thuộc tính là ảnh, videoId và title.

9. Tạo file VideoAdapter.java như sau

Ở đây mình dùng thư viện imageLoader để hiển thị url hình ảnh lên ImageView

10. Tạo file SearchActivity.java như sau

Mình sẽ giải thích chức năng của file này, đầu tiên, bạn gõ vào EditText và nhấn Search, ta sử dụng YoutubeAPI là lấy được file Json hiển thị các video liên quan tới từ khoá đó. Đường link của Youtube API như sau

Ta có thể thấy param q = tuhocandroid.com hiển thị từ tìm kiếm của ta. Dán lên trình duyệt ta được file Json như sau

Screen Shot 2016-03-19 at 10.37.01 PM

Ta đánh giá về file Json này như sau: Có 1 JsonArray items gồm các đối tượng là các video liên quan. Để lấy videoId ta truy cập và đôi tượng id và lấy, để lấy title ta truy cập vào đối tượng snippet và tương tự là lấy url. Rất dễ phải không nào 🙂

Ở trong code, bạn có thể thấy mình thêm vào params như sau

Đây là các biến cần để GET Youtube API. Sau khi lấy được file Json như trên, mình phân tích nó như sau:

Đây chính là cách tách từng phần của Json mình đã nói ở mục trước.  Ngoài ra, khi click vào 1 hàng của listView, sẽ truyền videoIdtitle sang class MainActivity.java 

11. Sắp xong rồi 🙂 Mình giải thích có dễ hiểu không nhỉ ? Bây giờ bạn chỉnh sửa file activity_main.xml như sau nhé

Layout này là để chạy video youtube.

12. Bạn thêm vài giá trị vào strings.xml nhé

13. Cuối cùng là sửa file MainActivity.java như sau

Lấy videoIdtitle từ class trước như sau

Khởi tạo Youtube bằng API

Chạy video qua videoId

14. Vậy là gần xong rồi, bước cuối là update lại AndroidManifest.java

Vậy là mình đã hướng dẫn các bạn xong cách lấy và sử dụng YoutubeAPI và chạy video Youtube trên ứng dụng rồi, bạn có thể download source code tại đây. Khi down source code về, bạn nhớ vào file Config.java và điền 2 key của mình vào nhé.

Nếu có bất kì thắc mắc nào hãy để lại comment hoặc liên hệ với mình qua fanpage. Cảm ơn các b đã đọc 🙂

7 thoughts on “Sử dụng Youtube API toàn tập trên Android

  1. Ole

    Nice tut! thanks ad nhé. Mà trong video thấy ad search nhiều lần ko ra. Lý do là đoạn extract json từ server bị lỗi vì không lấy được “videoId” bởi kết quả trả về có lẫn cả playlist và channel như bên dưới :

    “id”: {
    “kind”: “youtube#channel”,
    “channelId”: “UCGjylN-4QCpn8XJ1uY-UOgA”
    }

    => để fix thì trong request thêm vào field “type” là được :

    // filter video only
    params.put(“type”,”video”);

    Reference :
    https://developers.google.com/youtube/v3/docs/search/list#parameters

  2. DnIT

    Hay Quá bạn ơi.
    Sẵn cho hỏi, khi lấy cái SHA1 của file .android\debug.keystore . Vậy khi mình submit app lên CHPlay thì SHA1 này có dùng được không? Có phải đổi thành SHA1 của release keystore không ? Trong AndroidStudio thì để lấy cái SHA1 của release keystore thì làm sao?
    Cảm ơn bạn nhiều

  3. Ngà Nguyễn

    Cho em hỏi xíu ạ, em muốn load nhiều hơn 5 video, một danh sách dài luôn ik ạ, thì phải làm sao ạ?

  4. Tan Nguyen

    Xin chào bạn.
    Mình đã xem qua các bài viết của bạn và mình rất thích.
    Hiện nay mình đã có ý tưởng và nội dung về bida 3 băng. Nói thật đe viết 1 app youtube api thì mình chẳng hiểu gì hết. Mình muốn nhờ bạn viết dùm mình 1 app giống như là app Carom Master trên CHPLAY của Google.
    Cái app này mình rất thích nhưng ko biết lập trình. Bạn xem qua app này rồi báo giá cho mình nha.
    Mong bạn trả lời thư

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *