Skip to content

Instantly share code, notes, and snippets.

@christianromney
Created July 9, 2025 23:13
Show Gist options
  • Save christianromney/23ffcda417c42556ca7fc43185735282 to your computer and use it in GitHub Desktop.
Save christianromney/23ffcda417c42556ca7fc43185735282 to your computer and use it in GitHub Desktop.
my-tube.el readme

my-tube.el

This project is a simple minor mode for Emacs to interact with the YouTube Data API v3.

What Problems Does It Solve?

This mode allows the user to perform basic YouTube playlist management from within Emacs. It does not aim to provide comprehensive coverage of the YouTube Data API.

Use Cases

  • I want to list the items I’ve saved in one of my YouTube playlists, choose one, and open it in a browser.
  • Given a URL for a YouTube video, I want to add it to one of my playlists.
  • I want to remove an item from one of my playlists.

Primary Operations

This mode exposes commands to:

list-playlists
list a user’s playlists
create-playlist
creates a new named playlist for a user
delete-playlist
deletes a playlist for a user
list-playlist-items
list the items in a user’s given playlist
add-item-to-playlist
adds an item to a user’s playlist
remove-item-from-playlist
removes an item from a user’s playlist

Implementation Choices

  • Sensitive credentials such as Oauth client ids and credentials or API keys should be stored securely using a method which is idiomatic for Emacs Lisp code.
    • Built-in libraries and modes should be used.
    • If an API is complex or requires several steps, a simplified wrapper API should be created to streamline its use.
  • Many users of this project will use Mac OS. Consider this when devising the best implementation approach. For example, it may (or may not) be a good idea to use the Mac OS Keychain. Consider the pros and cons before selecting the best choice.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment