diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9cac18f --- /dev/null +++ b/setup.py @@ -0,0 +1,38 @@ +import setuptools + + +def _get_file_content(file_name): + with open(file_name, 'r') as file_handler: + return file_handler.read() + +def get_long_description(): + return _get_file_content('README.md') + +def get_requirements(): + return list(filter(lambda line: line != '' and not line.startswith('#'), _get_file_content('requirements.txt').split('\n'))) + + +setuptools.setup( + name="youtube_transcript_api", + version="0.1.0", + author="Jonas Depoix", + author_email="jonas.depoix@web.de", + description="This is an python API which allows you to get the transcripts/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require a headless browser, like other selenium based solutions do!", + long_description=get_long_description(), + long_description_content_type="text/markdown", + keywords="youtube-api subtitles youtube transcripts transcript subtitle youtube-subtitles youtube-transcripts cli" + url="https://github.com/jdepoix/youtube-transcript-api", + packages=setuptools.find_packages(), + classifiers=( + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ), + install_requires=get_requirements(), + entry_points={ + 'console_scripts': [ + 'youtube_transcript_api = youtube_transcript_api.__main__:main', + ], + }, +) diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/src/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/youtube_transcript_api/__init__.py b/youtube_transcript_api/__init__.py new file mode 100644 index 0000000..22623c6 --- /dev/null +++ b/youtube_transcript_api/__init__.py @@ -0,0 +1 @@ +from _api import YouTubeTranscriptApi diff --git a/youtube_transcript_api.py b/youtube_transcript_api/__main__.py old mode 100755 new mode 100644 similarity index 66% rename from youtube_transcript_api.py rename to youtube_transcript_api/__main__.py index 266101f..ff7b5cd --- a/youtube_transcript_api.py +++ b/youtube_transcript_api/__main__.py @@ -1,5 +1,3 @@ -#!/usr/bin/python - import sys import json @@ -8,13 +6,19 @@ from pprint import pprint import logging -from src.transcript_api import YouTubeTranscriptApi +from _api import YouTubeTranscriptApi -if __name__ == '__main__': +def main(): logging.basicConfig() - - if sys.argv[1] == '--json': + + if len(sys.argv) <= 1: + print('No YouTube video id was found') + elif sys.argv[1] == '--json': print(json.dumps(YouTubeTranscriptApi.get_transcripts(sys.argv[2:], continue_after_error=True)[0])) else: pprint(YouTubeTranscriptApi.get_transcripts(sys.argv[1:], continue_after_error=True)[0]) + + +if __name__ == '__main__': + main() diff --git a/src/transcript_api.py b/youtube_transcript_api/_api.py similarity index 98% rename from src/transcript_api.py rename to youtube_transcript_api/_api.py index b426003..42a2005 100644 --- a/src/transcript_api.py +++ b/youtube_transcript_api/_api.py @@ -6,7 +6,7 @@ import logging import requests -from .html_unescaping import unescape +from _html_unescaping import unescape logger = logging.getLogger(__name__) @@ -110,6 +110,7 @@ class _TranscriptParser(): def __init__(self, plain_data): self.plain_data = plain_data + print(plain_data) def parse(self): return [ diff --git a/src/html_unescaping.py b/youtube_transcript_api/_html_unescaping.py similarity index 100% rename from src/html_unescaping.py rename to youtube_transcript_api/_html_unescaping.py