
يقوم بتجميع مواقع Snap Map العامة لتنزيل وتصنيف القصص للتحليل الاستقصائي، مع مواقع جغرافية عشوائية وسير عمل مراجعة تلقائية.
يمكن لهذا البرنامج البحث في خريطة سناب العامة لسناب شات في مواقع متعددة وتنزيل جميع القصص للتحقيق والتصنيف لاحقًا. هناك الكثير من الأمور غير المعروفة حول كيفية اختيار سناب شات لمقاطع الفيديو التي تظهر عند أي "نقطة" على الخريطة، لذلك يمكن للماسح أيضًا عشوائية الموقع الجغرافي الذي يقوم بالمسح منه بمقدار بضع مئات من الأمتار على أمل إقناع واجهة برمجة التطبيقات بإعطائك بعض مقاطع الفيديو الإضافية ذات الصلة.
تم اختبار هذا على لينكس، لكنه يجب أن يعمل على ويندوز/ماك أيضًا مع وجود مشغل فيديو مثبت.
git clone https://github.com/nemec/snapchat-map-scraper.git
cd snapchat-map-scraper/
python3 -m venv env # إنشاء بيئة افتراضية
source env/bin/activate # تفعيل البيئة الافتراضية
pip3 install -r requirements.txt
اتبع كل خطوة بالترتيب. تأكد أيضًا من تفعيل البيئة الافتراضية الخاصة بك، وإلا ستفقد الحزم.
تحتوي هذه القاعدة على بيانات متعلقة بمجموعة واحدة من استعلامات البحث. نظرًا لأن SQLite ينتج ملفات قاعدة بيانات ذات حمل زائد قليل، يجب عليك إنشاء قاعدة بيانات جديدة في كل مرة تريد فيها أخذ عينة من البيانات.
python3 story_downloader.py create snap.db
سيقوم أمر الإضافة بإضافة موقع جديد إلى قاعدة البيانات. سيقوم البرنامج لاحقًا بمسح وتسجيل السنابات من جميع المواقع المضافة حتى تتمكن من تتبع عدة نقاط في وقت واحد. ابحث عن خط العرض وخط الطول لنقطة اهتمامك (يمكن العثور عليها بسهولة على خريطة سناب، كما هو موضح أدناه) واستبدلها في الأمر أدناه. التسمية تجعل من السهل تذكر مكان النقطة.
python3 story_downloader.py add --database snap.db --label "وسط دالاس" 32.783038 -96.796388
# تم إضافة وسط دالاس إلى قاعدة البيانات

يقوم أمر المسح بالتكرار عبر جميع المواقع المضافة وتنزيل السنابات في ذلك الموقع. يتم تنزيل الصور المصغرة ومقاطع الفيديو والتراكبات ولكن أمر المراجعة يمكنه التعامل مع الفيديو فقط في الوقت الحالي.
الوسائط الاختيارية:
--randomize سيعشوائي الموقع الجغرافي في نطاق 500 متر، بهدف حث
واجهة برمجة تطبيقات سناب شات على إرسال مقاطع فيديو جديدة لم تقدمها بعد. ليس لدي أي فكرة
عن سبب إرسال سناب شات فقط لمجموعة فرعية من إجمالي مقاطع الفيديو لنقطة واحدة،
ربما لجعل الخدمة أكثر قابلية للتوسع.--repeat سيجعل التطبيق يتكرر بلا حدود بحثًا عن مقاطع فيديو جديدة.
اتركه يعمل طوال الليل لجمع أكبر قدر ممكن.--sleep سيعدل وقت نوم التطبيق قبل التكرار. القيمة الافتراضية
120 ثانية ولا تؤثر إلا إذا تم تضمين --repeat.python3 story_downloader.py scrape "وسط دالاس"python3 story_downloader.py scrape --database snap.db --randomize --repeat
# تم مسح 16 وسيطًا من موقع وسط دالاس
# النوم لمدة 120 ثانية...
يقوم أمر المراجعة بالبحث في جميع مقاطع الفيديو غير المراجعة وفتح كل واحد منها في مشغل فيديو للمراجعة. بمجرد إغلاق عملية مشغل الفيديو، سيطالبك واجهة سطر الأوامر بـ "تصنيف". يمكن أن يكون هذا أي نص يصف الموقف في الفيديو أو علامة، إلخ. إذا كان الفيديو غير ذي صلة، اترك التصنيف فارغًا واضغط فقط على "Enter". بمجرد تصنيف جميع مقاطع الفيديو المتبقية، سيخرج التطبيق. اعتمادًا على نظام التشغيل الخاص بك،
python3 story_downloader.py review --database snap.db
# صنف أو اترك فارغًا: شرطة متظاهرون
# 15 متبقيًا
# صنف أو اترك فارغًا:
# 14 متبقيًا
# صنف أو اترك فارغًا: حريق
# 13 متبقيًا
# ...
سيقوم أمر التصدير بنسخ جميع مقاطع الفيديو التي تم "تصنيفها" إلى مجلد جديد لمزيد من المراجعة/التحرير/النشر.
python3 story_downloader.py export --database snap.db export/
# تم تصدير 3 فيديو(ات)
ls export/
# 2020-05-29-04:26:30-fire.mp4
# 2020-05-30-12:26:57-crowd.mp4
# '2020-05-30-21:16:22-line of people.mp4'