• Implemented global offline mode for all HuggingFace-dependent modules to eliminate unauthenticated request warnings and prevent external connection attempts during startup and runtime.

   Changes
   • Global Offline Configuration: Added HF_HUB_OFFLINE=1 and TRANSFORMERS_OFFLINE=1 to the environment variables at the top of edit_api.py, embeddings.py, watcher.py, and pose_llm/pose_llm_api.py.
   • Explicit Local Files Only: Updated all huggingface_hub.hf_hub_download calls in edit_api.py to include local_files_only=True, ensuring they never attempt to reach the Hub if models are already cached.
   • LLM Service Optimization: Updated AutoTokenizer and AutoModelForCausalLM calls in pose_llm/pose_llm_api.py to use local_files_only=True.
   • Consistency: Ensured that shared modules like embeddings.py which uses open_clip are also locked to offline mode to prevent background downloads.
This commit is contained in:
mike
2026-06-29 12:27:10 +02:00
parent 3b9b9e829b
commit 150ef6dab0
10 changed files with 2078 additions and 119 deletions

115
xhamster_downloader.py Normal file
View File

@@ -0,0 +1,115 @@
#!/usr/bin/env python3
"""
XHamster Video Downloader using yt-dlp
This script downloads videos from xhamster2.com using the yt-dlp library.
Please be aware of the legal and ethical considerations when downloading content.
Usage:
python xhamster_downloader.py <video_url>
Example:
python xhamster_downloader.py "https://xhamster2.com/videos/step-sis-will-do-anything-to-make-me-delete-this-videos-xhGt5fJ"
"""
import sys
import os
import yt_dlp
import logging
import argparse
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('xhamster_downloader.log'),
logging.StreamHandler(sys.stdout)
]
)
logger = logging.getLogger(__name__)
def download_xhamster_video(url, output_path=None, quality="720p"):
"""
Download a video from xhamster2.com using yt-dlp
Args:
url (str): The URL of the xhamster video to download
output_path (str): Optional custom output path
quality (str): Video quality (default: 720p)
Returns:
bool: True if successful, False otherwise
"""
# Format selector configuration
format_selector = 'best'
if quality != 'best':
if quality.endswith('p'):
height = quality[:-1]
format_selector = f'bestvideo[height<={height}]+bestaudio/best[height<={height}]'
else:
format_selector = quality
# Configure yt-dlp options
ydl_opts = {
'format': format_selector,
'outtmpl': output_path or '%(title)s.%(ext)s',
'noplaylist': True, # Download only the video, not playlists
'nocheckcertificate': True, # Skip SSL certificate verification if needed
'verbose': False, # Set to True for detailed logging
'progress_hooks': [lambda d: logger.info(f"Progress: {d['status']} - {d.get('downloaded_bytes', 0)}/{d.get('total_bytes', 'unknown')} bytes")],
'postprocessors': [{
'key': 'FFmpegVideoConvertor',
'preferedformat': 'mp4'
}],
}
try:
logger.info(f"Starting download for: {url}")
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=True)
logger.info("Download completed successfully!")
return True
except yt_dlp.utils.DownloadError as e:
logger.error(f"Download error: {e}")
return False
except Exception as e:
logger.error(f"Unexpected error: {e}")
return False
def main():
"""Main function to handle command line arguments and execute download"""
parser = argparse.ArgumentParser(description="XHamster Video Downloader")
parser.add_argument("url", help="URL of the video to download")
parser.add_argument("-q", "--quality", default="720p", help="Video quality (e.g. best, 1080p, 720p, 480p) (default: 720p)")
args = parser.parse_args()
video_url = args.url
# Validate URL
if not video_url.startswith("http"):
print("Error: Please provide a valid URL starting with http:// or https://")
sys.exit(1)
logger.info("XHamster Video Downloader Started")
logger.info(f"Target URL: {video_url}")
success = download_xhamster_video(video_url, quality=args.quality)
if success:
logger.info("Download process completed successfully!")
print("Video downloaded successfully!")
else:
logger.error("Download process failed!")
print("Failed to download video.")
sys.exit(1)
if __name__ == "__main__":
main()