xosski

exgif scraper

Jan 20th, 2026
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. import os
  2. import exifread
  3. from hachoir.parser import createParser
  4. from hachoir.metadata import extractMetadata
  5. from pathlib import Path
  6.  
  7. def extract_image_metadata(filepath):
  8. try:
  9. with open(filepath, 'rb') as f:
  10. tags = exifread.process_file(f, details=False)
  11. print(f"\n[IMAGE] {filepath}")
  12. for tag in tags:
  13. print(f" {tag}: {tags[tag]}")
  14. except Exception as e:
  15. print(f" [ERROR] {filepath}: {e}")
  16.  
  17. def extract_video_metadata(filepath):
  18. try:
  19. parser = createParser(filepath)
  20. if not parser:
  21. print(f" [SKIPPED] Can't parse file: {filepath}")
  22. return
  23. with parser:
  24. metadata = extractMetadata(parser)
  25. if metadata:
  26. print(f"\n[VIDEO] {filepath}")
  27. for line in metadata.exportPlaintext():
  28. print(f" {line}")
  29. except Exception as e:
  30. print(f" [ERROR] {filepath}: {e}")
  31.  
  32. def is_image(file):
  33. return file.suffix.lower() in ['.jpg', '.jpeg', '.png', '.tiff', '.bmp']
  34.  
  35. def is_video(file):
  36. return file.suffix.lower() in ['.mp4', '.mov', '.avi', '.mkv', '.webm', '.wmv']
  37.  
  38. def scan_directory(directory):
  39. print(f"Scanning directory: {directory}")
  40. for file in Path(directory).rglob("*"):
  41. if file.is_file():
  42. if is_image(file):
  43. extract_image_metadata(str(file))
  44. elif is_video(file):
  45. extract_video_metadata(str(file))
  46.  
  47. if __name__ == "__main__":
  48. folder = input("Enter folder path to scan for media files: ").strip()
  49. if os.path.isdir(folder):
  50. scan_directory(folder)
  51. else:
  52. print("Invalid folder path.")
  53.  
Advertisement
Add Comment
Please, Sign In to add comment