এটি আংশিক অটোমেশন সহ আংশিক উত্তর। গুগল গুগল টেকআউটে স্বয়ংক্রিয় অ্যাক্সেস বন্ধ করতে চাইলে এটি ভবিষ্যতে কাজ করা বন্ধ করে দিতে পারে। বৈশিষ্ট্যগুলি বর্তমানে এই উত্তরে সমর্থিত:
+ + --------------------------------------------- + + --- --------- + + --------------------- + +
| অটোমেশন বৈশিষ্ট্য | অটোমেটেড? | সমর্থিত প্ল্যাটফর্ম |
+ + --------------------------------------------- + + --- --------- + + --------------------- + +
| গুগল অ্যাকাউন্ট লগ ইন | না | |
| মোজিলা ফায়ারফক্স থেকে কুকিজ পান | হ্যাঁ | লিনাক্স |
| গুগল ক্রোম | থেকে কুকিজ পান হ্যাঁ | লিনাক্স, ম্যাকোস |
| আর্কাইভ তৈরির অনুরোধ | না | |
| তফসিল সংরক্ষণাগার তৈরি | কিন্ডা | টেকআউট ওয়েবসাইট |
| সংরক্ষণাগার তৈরি হয়েছে কিনা তা পরীক্ষা করুন | না | |
| সংরক্ষণাগার তালিকা পান | হ্যাঁ | ক্রস প্ল্যাটফর্ম |
| সমস্ত সংরক্ষণাগার ফাইল ডাউনলোড করুন হ্যাঁ | লিনাক্স, ম্যাকোস |
| ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি এনক্রিপ্ট করুন না | |
| ড্রপবক্সে ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি আপলোড করুন না | |
| ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি এডাব্লুএস এস 3 এ আপলোড করুন না | |
+ + --------------------------------------------- + + --- --------- + + --------------------- + +
প্রথমত, একটি ক্লাউড থেকে ক্লাউড সমাধান সত্যিই কাজ করতে পারে না কারণ গুগল টেকআউট এবং কোনও পরিচিত অবজেক্ট স্টোরেজ সরবরাহকারীর মধ্যে কোনও ইন্টারফেস নেই। আপনার অবজেক্ট স্টোরেজ সরবরাহকারীর কাছে পাঠানোর আগে আপনার নিজের মেশিনে ব্যাকআপ ফাইলগুলি (যা আপনি চাইলে পাবলিক মেঘে হোস্ট করা যেতে পারে) প্রক্রিয়া করতে হবে।
দ্বিতীয়ত, গুগল টেকআউট এপিআই না থাকায় একটি অটোমেশন স্ক্রিপ্টকে গুগল টেকআউট সংরক্ষণাগার তৈরি এবং ডাউনলোড প্রবাহের মধ্য দিয়ে চলতে ব্রাউজারের ব্যবহারকারী হওয়ার ভান করা দরকার।
অটোমেশন বৈশিষ্ট্য
গুগল অ্যাকাউন্ট লগ ইন
এটি এখনও স্বয়ংক্রিয় হয় না। স্ক্রিপ্টটির ব্রাউজার হওয়ার ভান করা এবং দ্বি-গুণক প্রমাণীকরণ, ক্যাপচএ এবং অন্যান্য বর্ধিত সুরক্ষা স্ক্রিনিংয়ের মতো সম্ভাব্য প্রতিবন্ধকতাগুলি নেভিগেট করা দরকার।
মজিলা ফায়ারফক্স থেকে কুকিজ পান
লিনাক্স ব্যবহারকারীদের কাছে মোজিলা ফায়ারফক্স থেকে গুগল টেকআউট কুকিজ দখল করতে এবং সেগুলি পরিবেশের ভেরিয়েবল হিসাবে রফতানি করার জন্য আমার কাছে একটি স্ক্রিপ্ট রয়েছে। এটি কাজ করার জন্য, কেবলমাত্র একটি ফায়ারফক্স প্রোফাইল থাকা উচিত এবং লগ ইন করার সময় প্রোফাইলটি অবশ্যই https://takeout.google.com এ গিয়েছিল ।
ওয়ান-লাইনার হিসাবে:
cookie_jar_path=$(mktemp) ; source_path=$(mktemp) ; cp ~/.mozilla/firefox/*.default/cookies.sqlite "$cookie_jar_path" ; sqlite3 "$cookie_jar_path" "SELECT name,value FROM moz_cookies WHERE baseDomain LIKE 'google.com' AND (name LIKE 'SID' OR name LIKE 'HSID' OR name LIKE 'SSID' OR (name LIKE 'OSID' AND host LIKE 'takeout.google.com')) AND originAttributes LIKE '^userContextId=1' ORDER BY creationTime ASC;" | sed -e 's/|/=/' -e 's/^/export /' | tee "$source_path" ; source "$source_path" ; rm -f "$source_path" ; rm -f "$cookie_jar_path"
একটি সুন্দর বাশ লিপি হিসাবে:
#!/bin/bash
# Extract Google Takeout cookies from Mozilla Firefox and export them as envvars
#
# The browser must have visited https://takeout.google.com as an authenticated user.
# Warn the user if they didn't run the script with `source`
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && \
echo 'WARNING: You should source this script to ensure the resulting environment variables get set.'
cookie_jar_path=$(mktemp)
source_path=$(mktemp)
# In case the cookie database is locked, copy the database to a temporary file.
# Only supports one Firefox profile.
# Edit the asterisk below to select a specific profile.
cp ~/.mozilla/firefox/*.default/cookies.sqlite "$cookie_jar_path"
# Get the cookies from the database
sqlite3 "$cookie_jar_path" \
"SELECT name,value
FROM moz_cookies
WHERE baseDomain LIKE 'google.com'
AND (
name LIKE 'SID' OR
name LIKE 'HSID' OR
name LIKE 'SSID' OR
(name LIKE 'OSID' AND host LIKE 'takeout.google.com')
) AND
originAttributes LIKE '^userContextId=1'
ORDER BY creationTime ASC;" | \
# Reformat the output into Bash exports
sed -e 's/|/=/' -e 's/^/export /' | \
# Save the output into a temporary file
tee "$source_path"
# Load the cookie values into environment variables
source "$source_path"
# Clean up
rm -f "$source_path"
rm -f "$cookie_jar_path"
গুগল ক্রোম থেকে কুকিজ পান
আমার কাছে লিনাক্স এবং সম্ভবত ম্যাকস ব্যবহারকারীগণের জন্য গুগল ক্রোম থেকে গুগল টেকআউট কুকিজগুলি গ্রহন করতে এবং পরিবেশের ভেরিয়েবল হিসাবে তাদের রফতানি করার জন্য একটি স্ক্রিপ্ট রয়েছে। স্ক্রিপ্টটি পাইথন 3 venv
উপলভ্য এবং এই Default
ক্রম প্রোফাইলটি লগ ইন করার সময় https://takeout.google.com পরিদর্শন করেছে um
ওয়ান-লাইনার হিসাবে:
if [ ! -d "$venv_path" ] ; then venv_path=$(mktemp -d) ; fi ; if [ ! -f "${venv_path}/bin/activate" ] ; then python3 -m venv "$venv_path" ; fi ; source "${venv_path}/bin/activate" ; python3 -c 'import pycookiecheat, dbus' ; if [ $? -ne 0 ] ; then pip3 install git+https://github.com/n8henrie/pycookiecheat@dev dbus-python ; fi ; source_path=$(mktemp) ; python3 -c 'import pycookiecheat, json; cookies = pycookiecheat.chrome_cookies("https://takeout.google.com") ; [print("export %s=%s;" % (key, cookies[key])) for key in ["SID", "HSID", "SSID", "OSID"]]' | tee "$source_path" ; source "$source_path" ; rm -f "$source_path" ; deactivate
একটি সুন্দর বাশ লিপি হিসাবে:
#!/bin/bash
# Extract Google Takeout cookies from Google Chrome and export them as envvars
#
# The browser must have visited https://takeout.google.com as an authenticated user.
# Warn the user if they didn't run the script with `source`
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && \
echo 'WARNING: You should source this script to ensure the resulting environment variables get set.'
# Create a path for the Chrome cookie extraction library
if [ ! -d "$venv_path" ]
then
venv_path=$(mktemp -d)
fi
# Create a Python 3 venv, if it doesn't already exist
if [ ! -f "${venv_path}/bin/activate" ]
then
python3 -m venv "$venv_path"
fi
# Enter the Python virtual environment
source "${venv_path}/bin/activate"
# Install dependencies, if they are not already installed
python3 -c 'import pycookiecheat, dbus'
if [ $? -ne 0 ]
then
pip3 install git+https://github.com/n8henrie/pycookiecheat@dev dbus-python
fi
# Get the cookies from the database
source_path=$(mktemp)
read -r -d '' code << EOL
import pycookiecheat, json
cookies = pycookiecheat.chrome_cookies("https://takeout.google.com")
for key in ["SID", "HSID", "SSID", "OSID"]:
print("export %s=%s" % (key, cookies[key]))
EOL
python3 -c "$code" | tee "$source_path"
# Clean up
source "$source_path"
rm -f "$source_path"
deactivate
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && rm -rf "$venv_path"
ডাউনলোড করা ফাইলগুলি পরিষ্কার করুন:
rm -rf "$venv_path"
সংরক্ষণাগার তৈরির অনুরোধ করুন
এটি এখনও স্বয়ংক্রিয় হয় না। স্ক্রিপ্টটির জন্য Google টেকআউট ফর্মটি পূরণ করতে হবে এবং তারপরে এটি জমা দিতে হবে।
সংরক্ষণাগার তৈরির সময়সূচী
এটি করার কোনও সম্পূর্ণ স্বয়ংক্রিয় পদ্ধতি নেই তবে 2019 সালের মে মাসে গুগল টেকআউট একটি বৈশিষ্ট্য প্রবর্তন করে যা 1 বছরের জন্য প্রতি 2 মাসে 1 টি ব্যাকআপ তৈরি করতে স্বয়ংক্রিয় করে তোলে (মোট 6 টি ব্যাকআপ)। সংরক্ষণাগার অনুরোধ ফর্মটি পূরণ করার সময় এটি https://takeout.google.com এ ব্রাউজারে করতে হবে :
সংরক্ষণাগারটি তৈরি হয়েছে কিনা তা পরীক্ষা করুন
এটি এখনও স্বয়ংক্রিয় হয় না। যদি কোনও সংরক্ষণাগার তৈরি করা হয়েছে, গুগল কখনও কখনও ব্যবহারকারীর জিমেইল ইনবক্সে ইমেল প্রেরণ করে তবে আমার পরীক্ষায় এটি অজানা কারণে সর্বদা ঘটে না।
সংরক্ষণাগারটি তৈরি করা হয়েছে কিনা তা যাচাই করার একমাত্র অন্য উপায় হ'ল পর্যায়ক্রমে গুগল টেকআউট পোল করে।
সংরক্ষণাগার তালিকা পান
উপরের "কুকিজ পান" বিভাগে কুকিগুলিকে পরিবেশের ভেরিয়েবল হিসাবে সেট করা হয়েছে তা ধরে নিয়েই এটি করার জন্য আমার একটি আদেশ রয়েছে:
curl -sL -H "Cookie: SID=${SID}; HSID=${HSID}; SSID=${SSID}; OSID=${OSID};" \
'https://takeout.google.com/settings/takeout/downloads' | \
grep -Po '(?<=")https://storage\.cloud\.google\.com/[^"]+(?=")' | \
awk '!x[$0]++'
আউটপুটটি ইউআরএলগুলির একটি লাইন-সীমাবদ্ধ তালিকা যা সমস্ত উপলব্ধ সংরক্ষণাগার ডাউনলোডের দিকে নিয়ে যায়।
এটি রেগেক্সের সাথে এইচটিএমএল থেকে পার্স করা হয়েছে ।
সমস্ত সংরক্ষণাগার ফাইল ডাউনলোড করুন
সংরক্ষণাগারগুলির ফাইলগুলির URL গুলি পেতে এবং সেগুলি ডাউনলোড করার জন্য বাশের কোডটি এখানে রয়েছে, ধরে নিয়ে যে কুকিগুলি উপরের "কুকিজ পান" বিভাগে পরিবেশগত পরিবর্তনশীল হিসাবে সেট করা আছে:
curl -sL -H "Cookie: SID=${SID}; HSID=${HSID}; SSID=${SSID}; OSID=${OSID};" \
'https://takeout.google.com/settings/takeout/downloads' | \
grep -Po '(?<=")https://storage\.cloud\.google\.com/[^"]+(?=")' | \
awk '!x[$0]++' | \
xargs -n1 -P1 -I{} curl -LOJ -C - -H "Cookie: SID=${SID}; HSID=${HSID}; SSID=${SSID}; OSID=${OSID};" {}
আমি এটি লিনাক্সে পরীক্ষা করেছি, তবে সিনট্যাক্সটি ম্যাকওএসের সাথেও সামঞ্জস্যপূর্ণ হওয়া উচিত।
প্রতিটি অংশের ব্যাখ্যা:
curl
প্রমাণীকরণ কুকিজ সহ কমান্ড:
curl -sL -H "Cookie: SID=${SID}; HSID=${HSID}; SSID=${SSID}; OSID=${OSID};" \
ডাউনলোড লিঙ্কগুলির সাথে থাকা পৃষ্ঠাটির URL
'https://takeout.google.com/settings/takeout/downloads' | \
ফিল্টার কেবল ডাউনলোড লিঙ্কের সাথে মেলে
grep -Po '(?<=")https://storage\.cloud\.google\.com/[^"]+(?=")' | \
সদৃশ লিঙ্কগুলি ফিল্টার আউট
awk '!x[$0]++' \ |
একের পর এক তালিকায় প্রতিটি ফাইল ডাউনলোড করুন:
xargs -n1 -P1 -I{} curl -LOJ -C - -H "Cookie: SID=${SID}; HSID=${HSID}; SSID=${SSID}; OSID=${OSID};" {}
দ্রষ্টব্য: ডাউনলোডগুলিকে সমান্তরাল করে তোলা ( -P1
উচ্চতর সংখ্যায় পরিবর্তন করা) সম্ভব তবে গুগল সংযোগগুলির মধ্যে একটি ব্যতীত সমস্ত কিছু থ্রোল্ট মনে করে।
দ্রষ্টব্য: -C -
ইতিমধ্যে বিদ্যমান ফাইলগুলি এড়িয়ে যায় তবে এটি বিদ্যমান ফাইলগুলির জন্য ডাউনলোডগুলি সফলভাবে পুনরায় আরম্ভ করতে পারে না।
ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি এনক্রিপ্ট করুন
এটি স্বয়ংক্রিয় নয়। আপনি কীভাবে আপনার ফাইলগুলি এনক্রিপ্ট করতে চান তার উপর প্রয়োগটি নির্ভর করে এবং আপনার এনক্রিপ্ট করা প্রতিটি ফাইলের জন্য স্থানীয় ডিস্ক স্পেস খরচ অবশ্যই দ্বিগুণ করতে হবে।
ড্রপবক্সে ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি আপলোড করুন
এটি এখনও স্বয়ংক্রিয় হয় না।
AWS S3 এ ডাউনলোড করা সংরক্ষণাগার ফাইলগুলি আপলোড করুন
এটি এখনও স্বয়ংক্রিয় নয়, তবে এটি ডাউনলোড করা ফাইলগুলির তালিকার উপরে পুনরাবৃত্তি হওয়া এবং কমান্ড চালানোর মতো বিষয় হওয়া উচিত:
aws s3 cp TAKEOUT_FILE "s3://MYBUCKET/Google Takeout/"