To begin, the first extension we are going to create is a simple extension that allows the embedding of YouTube videos in Jinja templates using the following tag:
{{ youtube(video_id) }}
The video_id object is the code after v in any YouTube URL. For example, in the URL https://www.youtube.com/watch?v=_OBlgSz8sSM, the video_id object is _OBlgSz8sSM.
For now, the code for this extension resides in __init__.py. However, this is only for development and debugging purposes. When the code is ready to be shared, it is moved into its own project directory.
The first thing that any Flask extension needs is the object that will be initialized on the app. This object will handle adding its Blueprint object to the app and registering the youtube function on Jinja:
from flask import Blueprint
class Youtube(object):
def __init__(self, app=None, **kwargs...