Python library for interacting with FreeTube's playlists.db file
pip install freetubedb
@dataclass(frozen=True)
class FreetubePlaylist:
"""
FreetubePlaylist class. Contains all the information stored about a playlist.
"""
id: str
name: str
description: str
protected: bool
videos: list[FreetubeVideo] = field(default_factory=list[FreetubeVideo])
@dataclass(frozen=True)
class FreetubeVideo:
"""
FreetubeVideo class. Contains all the information stored about a video in a FreetubePlaylist.
"""
id: str
title: str
author_id: str
author_name: str
length: int # seconds
date_published: int # unix timestamp
date_added: int # unix timestamp
playlist_item_id: str
from pathlib import Path
from freetubedb import parse_playlists_file, FreetubePlaylist
# uses default FreeTube path based on operating system
playlists: list[FreetubePlaylist] = parse_playlists_file()
# alternatively, you can supply your own custom path:
# playlists: list[FreetubePlaylist] = parse_playlists_file(Path("./playlists.db"))
for playlist in playlists:
print(f"Playlist: {playlist.name} (ID: {playlist.id})")
print(f"Description: {playlist.description}")
print(f"Number of videos: {len(playlist.videos)}")
for video in playlist.videos:
print(f" - {video.title} by {video.author_name}")
print(f" Video ID: {video.id}")
print(f" Length: {video.length} seconds")
print(f" Published: {video.date_published} (unix timestamp)")
print(f" Added to playlist: {video.date_added} (unix timestamp)")
freetubedb
is distributed under the terms of the GPL-3.0 license.