Photobox Downloader adalah modul NodeJS dan alat CLI untuk memudahkan interaksi dan pengunduhan album/foto. Photobox adalah situs web pencetakan foto yang populer, meskipun dimungkinkan untuk mengunduh setiap foto satu per satu, tidak ada cara untuk mengunduh seluruh album sekaligus. Proyek ini menjawab kebutuhan tersebut.
Meskipun aplikasi ini dikembangkan terhadap www.photobox.ie, aplikasi ini dapat berfungsi pada situs sejenis lainnya (www.photobox.co.uk, www.photobox.fr, www.photobox.de, dll...)
npm install -g photobox-downloader
mkdir albums
pbdl
Setelah Anda menjalankan aplikasi pbdl
, ia akan menanyakan 4 item informasi:
Saat Anda masuk ke akun Anda di Photobox, Photobox menyetel cookie otentikasi, jika Anda tahu cara melihat cookie, cari cookie pbx_www_photobox_xx
(xx tergantung di mana Anda masuk), jika tidak, Anda cukup masuk ke akun Photobox Anda, buka Toolbar Pengembang (tekan F12), buka tab "Aplikasi" (Chrome), perluas drop-down "Cookies". Klik pada domain dasar (misalnya https://www.photobox.ie), salin nilai cookie bernama "pbx_www_photobox_ie" (bagian terakhir, "_ie", akan berubah tergantung domain Anda).
Alternatifnya, Anda dapat menggunakan cURL untuk mendapatkannya (nama pengguna dan kata sandi harus dikodekan url). Ubah URL jika diperlukan.
export EMAIL= " yourmemail%40gmail.com " # url encoded email address
export PASS= " password "
curl ' https://www.photobox.ie/ ' -H ' User-Agent: photobox-downloader '
-H ' Content-Type: application/x-www-form-urlencoded '
-H ' Accept: text/html,*/*;q=0.8 '
-H ' Cache-Control: max-age=0 ' --cookie-jar -
--data ' global_action=login&email=$EMAIL&password=$PASS&auto_sign_in=on&login=Sign+in '
--compressed | grep " pbx_www_photobox " | awk ' {print "Authentication cookie: " $NF} '
Mode debug khusus dapat diakses dengan meneruskan parameter "-d" pada baris perintah (misalnya "pbdl -d") untuk melihat logging ekstensif
Anda juga dapat menggunakan modul pengunduh photobox di dalam proyek Anda sendiri untuk mengunduh foto secara terprogram.
var photoBox = require ( 'photobox-downloader' ) ( logger ) ; // logger could be Winston logger or just: console
var config = {
"baseDomain" : "www.photobox.ie" ,
// change "authCookieValue" value to your own authentication cookie value, see "login" section below for more info
"authCookieValue" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
} ;
// Login and download all photos from every album
photoBox . login ( config , function ( err ) {
if ( err ) {
console . log ( 'ERROR! Something went wrong logging in, check your authCookieValue!' ) ;
console . log ( err ) ;
} else {
console . log ( 'Logged into Photobox!' ) ;
photoBox . downloadAll (
{
showProgress : true ,
outputDir : __dirname + '/out'
} ,
function ( err ) {
if ( err ) {
console . log ( err ) ;
} else {
console . log ( 'Done! All photos downloaded (that was easy!)' ) ;
}
}
) ;
}
} ) ;
Mencoba mendapatkan konten halaman album. Anda harus meneruskan nilai cookie autentikasi dan domain yang ingin Anda gunakan untuk berinteraksi.
Argumen
options
- Objek yang harus berisi 2 pasangan kunci/nilai:
baseDomain
- photoboxDomain - Domain tempat Anda ingin berinteraksi. Contoh: "www.photobox.ie".authCookieValue
- "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - Nilai cookie "pbx_www_photobox_xx". callback
- Fungsi yang dipanggil setelah operasi login selesai. Jika tidak berhasil, parameter pertama tidak akan bernilai nol. Jika berhasil, sekarang dapat melakukan operasi tambahan apa pun.
Contoh
photoBox . login (
{
baseDomain : 'www.photobox.ie' ,
authCookieValue : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
} ,
function ( err ) {
if ( err ) {
console . log ( 'ERROR! Something went wrong logging in!' ) ;
console . log ( err ) ;
} else {
console . log ( 'Logged into Photobox!' ) ;
// Now run any additional command...
}
}
) ;
Mengunduh setiap foto di setiap album. Folder (dengan nama album) dibuat, semua foto di album itu akan diunduh ke album itu.
Argumen
options
- Objek yang harus berisi 2 pasangan kunci/nilai:
showProgress
: benar/salah - Boolean - Apakah akan menampilkan bilah status kemajuan pengunduhanoutputDir
: "/some/folder/path" - String - Jalur ke mana Anda ingin mengunduh foto. Setiap album akan diunduh ke foldernya sendiri callback
- Fungsi yang dipanggil setelah semua foto diunduh (atau jika terjadi kesalahan)
Contoh
photoBox . downloadAll (
{
showProgress : true ,
outputDir : __dirname + '/out'
} ,
function callback ( err ) {
if ( err ) {
console . log ( err ) ;
} else {
console . log ( 'Finished, all photos in every album have now been downloaded (that was easy!)' ) ;
}
}
) ;
Mengembalikan daftar album (termasuk penamaan, tautan/jalur relatif, dan jumlah foto dalam album itu.
Contoh
var albums = photoBox . getAlbumList ( ) ;
Mengunduh semua foto dari satu album tertentu. Folder dengan nama album akan dibuat di direktori yang diinginkan dan semua foto akan diunduh ke folder itu.
Argumen
options
- Objek yang harus berisi 3 pasangan kunci/nilai:
album
: albumObject - Objek album (termasuk nama, tautan, dan jumlah) yang akan diunduhoutputDir
: "/some/folder/path" - Jalur ke mana Anda ingin mengunduh foto. Setiap album akan diunduh ke foldernya sendirishowProgress
: benar/salah - Menampilkan bilah kemajuan yang bagus untuk menunjukkan kemajuan pengunduhan callback
- Fungsi yang dipanggil setelah semua foto diunduh (atau jika terjadi kesalahan)
Contoh
var albums = photoBox . getAlbumList ( ) ;
photoBox . downloadAlbum (
{
album : albums [ 0 ] , // download first album
outputDir : __dirname + '/out' ,
showProgress : true
} ,
function ( err ) {
if ( err ) {
console . log ( 'ERROR! Something went wrong downloading album!' ) ;
console . log ( err ) ;
} else {
console . log ( 'Album has been downloaded to the outputDir' ) ;
}
}
) ;
Unduh foto tertentu. Jika Anda mengetahui ID suatu foto, Anda dapat langsung mendownloadnya.
Argumen
options
- Objek yang harus berisi 2 pasangan kunci/nilai:
id
: "xxxxxxxx" - Id foto yang akan diunduhoutputDir
: "/some/folder/path" - Jalur ke mana Anda ingin mengunduh foto.Contoh
photoBox . downloadAlbum (
{
id : "xxxxxxxx" , // The id of the photo to download
outputDir : __dirname + '/out'
} , function ( err ) {
if ( err ) {
console . log ( 'ERROR! Something went wrong downloading photo!' ) ;
console . log ( err ) ;
} else {
console . log ( 'Photo has been downloaded to the outputDir' ) ;
}
}
) ;
berlisensi MIT.
Photobox adalah merek dagang dari PhotoBox Limited, penggunaannya dalam proyek ini berada di bawah penggunaan wajar. Penulis tidak terhubung dengan Photobox dan proyek ini bukan merupakan dukungan terhadap mereka atau layanan mereka.