I forgot what I chanagerd
This commit is contained in:
1 parent
24081e1576
commit
c4f5018833
20 files changed
+678
-77
No files matched your search
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import json
|
||||
import sys
|
||||
|
||||
# Finds the absolute path to 'project_directory' and adds it to Python's search path
|
||||
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))
|
||||
sys.path.append(PROJECT_ROOT)
|
||||
|
||||
from package.config import DB as DB
|
||||
from package.database import Chapter
|
||||
|
||||
def get_chapters(json_path):
|
||||
"""Loads the JSON file and returns all chapters."""
|
||||
with open(json_path, 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# The chapters are under video -> chapters
|
||||
video = data.get('video', {})
|
||||
chapters = video.get('chapters', [])
|
||||
|
||||
if not chapters:
|
||||
print("No chapters found.")
|
||||
return []
|
||||
|
||||
print(f"Found {len(chapters)} chapter(s) in video '{video.get('title')}':\n")
|
||||
|
||||
for i, chapter in enumerate(chapters, 1):
|
||||
start_sec = chapter.get('startMilliseconds', 0) / 1000
|
||||
length_sec = chapter.get('lengthMilliseconds', 0) / 1000
|
||||
|
||||
print(f"{i}. {chapter.get('description', 'No Title')}")
|
||||
print(f" - Type: {chapter.get('type')}")
|
||||
print(f" - Start: {start_sec}s ({chapter.get('startMilliseconds')}ms)")
|
||||
print(f" - Length: {length_sec}s ({chapter.get('lengthMilliseconds')}ms)")
|
||||
print(f" - Game: {chapter.get('gameDisplayName')} (ID: {chapter.get('gameId')})")
|
||||
print()
|
||||
|
||||
return chapters
|
||||
|
||||
def main():
|
||||
downloads = DB.get_downloaded()
|
||||
|
||||
for download in downloads:
|
||||
json_path = f"download/clips/{download.id}/{download.id}_chat.json" if download.clip_is else f"download/videos/{download.id}/{download.id}_chat.json"
|
||||
if os.path.exists(json_path):
|
||||
chapters = get_chapters(json_path)
|
||||
for chapter in chapters:
|
||||
chapter_record = Chapter(
|
||||
twitch_video_id=download.id,
|
||||
start_milliseconds=chapter.get('startMilliseconds'),
|
||||
length_milliseconds=chapter.get('lengthMilliseconds'),
|
||||
description=chapter.get('description'),
|
||||
type=chapter.get('type'),
|
||||
game_display_name=chapter.get('gameDisplayName'),
|
||||
game_id=chapter.get('gameId')
|
||||
)
|
||||
DB.insert(chapter_record)
|
||||
else:
|
||||
print(f"JSON file not found for video {download.id}: {json_path}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
# Usage: python get_chapters.py your_file.json
|
||||
#path = sys.argv[1] if len(sys.argv) > 1 else "/home/richard/python_scripts/download/videos/2873107835/2873107835_chat.json"
|
||||
#try:
|
||||
# get_chapters(path)
|
||||
#except FileNotFoundError:
|
||||
# print(f"Error: File not found -> {path}")
|
||||
#except json.JSONDecodeError:
|
||||
# print(f"Error: File is not valid JSON -> {path}")
|
||||
Reference in new issue
Block a user