Download Torrent via Github Action
![Download Torrent via Github Action](/content/images/size/w2000/2022/06/Thumbnail-YouTube-Bertahan-Hidup-Pemain-Game-Hijau-Gelap.png)
Torrent merupakan salah satu cara berbagi file yang bersifat P2P (Peer to Peer), yang artinya ketika kita mendownload file melalui torrent kita membuka koneksi dengan komputer lain (peers) yang dalam hal ini cukup beresiko bagi komputer kita. Untuk menghindari resiko tersebut ada beberapa cara yang dapat kita lakukan seperti menggunakan VPN atau dengan menggunakan virtual komputer (cloud computer).
Nah, pada kesempatan ini saya akan bagikan cara download torrent melalui cloud computer dengan memanfaatkan fitur dari Github Action. Untuk sistem kerjanya kurang lebih akan seperti berikut:
![](https://blog.uripsub.dev/content/images/2022/06/Untitled-2022-06-08-2332.png)
Penjelasannya gini: Github action akan menjalankan docker container dari image subekti13/torrent-downloader
yang mana didalamnya sudah terinstall transmission (torrent client) dan script untuk mendownload torrent ke dalam container lalu kemudian ketika proses download itu selesai, kita eksekusi script untuk mengunggahnya ke google drive dengan memanfaatkan API dari google drive. Jika teman2 penasaran dengan scriptnya bisa di cek di github saya (https://github.com/subekti404dev/torrent-downloader)
Oke tanpa basa-basi langsung saja kita persiapkan terlebih dahulu project di google console karena kita akan menggunakan API dari google drive.
Buat Google Drive Project
buka url berikut: https://console.cloud.google.com, kemudian buat project baru
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-40.png)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-48.png)
masukkan nama project, lalu klik tombol CREATE
.
Setelah itu pilih project yang sudah kita buat barusan, klik icon menu > API & Services > Enabled API & Services
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-44.png)
Setelah itu akan muncul tampilan berikut:
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-47.png)
Klik tombol + ENABLE APIS AND SERVICES
, kemudian kita akan diarahkan ke halaman berikut:
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-49.png)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_19-52.png)
ketikan drive
di serach bar, lalu pilih Google Drive API
. kemudian klik tombol Enable
Selanjutnya kita setting oauth screen-nya, ikuti seperti gambar berikut ya guys:
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-13-1.png)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-15.png)
masukkan app name (terserah) dan email kalian ya.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-16.png)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_23-42.png)
tambahkan test users email, gunakan email yang google drive-nya mau dipakai ya.
selanjutnya kita buat credentials..
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-18.png)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-19.png)
Pilih Web application
, masukkan name
(terserah), tambahkan redirect url ke https://developers.google.com/oauthplayground
lalu klik CREATE
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-20.png)
Simpan Client ID
dan Client Secret
kalian ya guys. nanti akan kalian butuhkan.
Generate Token
Oke setelah kita buat project, langkah selanjutnya adalah generate token. silahkan buka https://developers.google.com/oauthplayground
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-29.png)
Klik icon setting > centang Use your own OAuth credentials
> masukkan Client ID
& Client Secret
kalian > klik close
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-33.png)
di bagian API, scroll dan pilih Drive API v3
> centang https://googleapis.com/auth/drive
> klik tombol Authorize API
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-36.png)
Pilih email yang dimasukkan ke test users tadi ya
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-37.png)
pilih email project kalian > klik Allow
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-40.png)
klik tombol Exchange authorization code for tokens
> lalu akan muncul refresh token. kemudian copy dan simpan refresh token anda karena akan kita butuhkan nanti.
Buat Github Repo Baru
langkah selanjutnya silahkan buat repository baru di github anda dengan settingan public aja ya guys (workflow untuk repo public itu unlimited free hehe suka yang gratisan kan?).
tambahkan satu file baru di repo tersebut dengan path .github/workflows/torrent.yml
. Isi file tersebut dengan code berikut:
name: Docker Torrent Download
on:
workflow_dispatch:
inputs:
url:
description: 'Torrent file URL'
required: true
jobs:
download:
runs-on: ubuntu-latest
container: subekti13/torrent-downloader:latest
steps:
- name: Write .env File
run: |
echo '${{ secrets.DOTENV }}' >> .env
- name: Dowload File
run: node /app/download.js ${{ github.event.inputs.url }}
- name: LS
run: cd /data && ls -la
- name: Upload to Drive
run: node /app/upload.js
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-51.png)
Setelah itu pergi ke tab Setting
> pilih menu Secrets
> Pilih sub menu Actions
> klik tombol New Repository secret
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-53.png)
di field Name
isikan DOTENV
, lalu di field Value
isikan variable berikut:
GA_DRIVE_CLIENT_ID=
GA_DRIVE_CLIENT_SECRET=
GA_DRIVE_REDIRECT_URL=https://developers.google.com/oauthplayground
GA_DRIVE_REFRESH_TOKEN=
isi Client ID
, Client Secret
, dan Refresh Token
dengan punya kalian ya (yang didapat dari langkah sebelumnya).
kemudian klik Add Secret
Running Workflow (Download Torrent)
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-59.png)
Untuk menjalankan workflow, masuk ke tab Actions
> Pilih Docker Torrent Downloader
> Klik Dropdown Run Workflow
> masukkan Torrent file url
yang mau temen2 download > lalu terakhir klik tombol Run workflow
.
Tinggal pantau lognya ya guys
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_21-02.png)
Jika sudah selesai, silahkan teman2 masuk ke google drive dan lihat filenya disana
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_21-04.png)
Oke, segitu aja tutorial kali ini ya ...
See you :)
Video: