質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

6608閲覧

python .envファイルに設定したAPIを読み込めない

monmon2

総合スコア17

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/05/22 02:14

.envファイルでYOUTUBE_API_KEYを設定し、os.environで取得して、
forego run python3 search_youtube_videos.pyで読み込もうとしているのですが、以下のようなエラーが吐き出されて、解消できないのでどなたかエラー解消を教えてください。
envファイルがカレントディレクトリ内にあることは確認済みです。最初は実行権限もなかったのでそちらも変更しました。

使用しているPCはMACです。

ちなみにpythonで直接YOUTUBE_API_KEYを入力してみたら問題なく動きました。

初学者でわからないことが多いのでどうぞよろしくお願い致します。

python3

1#search_youtube_videos.py 2import os 3from apiclient.discovery import build 4 5YOUTUBE_API_KEY = os.environ['YOUTUBE_API_KEY'] 6 7youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY) 8 9search_response = youtube.search().list( 10 part='snippet', 11 q='手芸', 12 type='video', 13).execute() 14 15for item in search_response['items']: 16 print(item['snippet']['title'])

python

1#.envファイル 2YOUTUBE_API_KEY=<YOUTUBE_API_KEY>

python3

1Traceback (most recent call last): 2 File "search_youtube_videos.py", line 5, in <module> 3 YOUTUBE_API_KEY = os.environ['YOUTUBE_API_KEY'] 4 File "/Users/user/.pyenv/versions/3.7.3/lib/python3.7/os.py", line 678, in __getitem__ 5 raise KeyError(key) from None 6KeyError: 'YOUTUBE_API_KEY' 7ERROR: exit status 1
$ls -l total 653880 -rwxrwxrwx 1 user staff 55 5 22 10:42 API.env -rwxrwxrwx 1 user staff 367 5 22 10:39 search_youtube_videos.py

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

おはようございます。

問題文読ませていただきました。

こちらの記事に従って試していただけますでしょうか?
python-dotenvを使って環境変数を設定する

投稿2021/05/22 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

monmon2

2021/05/25 03:07

記事に従って進めましたが、このようなエラーが出されました。 Traceback (most recent call last): File "/Users/user/search_youtube_videos.py", line 3, in <module> import settings File "/Users/user/settings.py", line 10, in <module> YOUTUBE_API_KEY = os.environ.get['YOUTUBE_API_KEY'] TypeError: 'method' object is not subscriptable
monmon2

2021/05/25 05:04

os.environ.getのところで[]で括ってました。エラー解消されました。ありがとうございました!
退会済みユーザー

退会済みユーザー

2021/05/25 05:36

あら、うまくいったみたいですね。よかった〜〜 一応gitに使い方をまとめてみました。 https://github.com/kuroroblog/youtube-api/blob/master/README.md ご確認いただけますと幸いです。????‍♂️ また困ったこととかありましたら、気軽にご相談ください。
guest

0

.envファイルを読み込むには、まず

pip install python-dotenv

でpython-dotenvをインストールしてください。

下記のように、load_dotenvを実行することで、.envファイルに記述した内容が、環境変数として読み込まれます。

import os from os.path import join, dirname from dotenv import load_dotenv load_dotenv(verbose=True) dotenv_path = join(dirname(__file__), '.env') load_dotenv(dotenv_path) YOUTUBE_API_KEY = os.environ.get('YOUTUBE_API_KEY') print(YOUTUBE_API_KEY )

投稿2021/05/22 02:26

編集2021/05/22 02:28
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

monmon2

2021/05/25 01:13

教えていただいたコードを入力したら、下記のようなエラーが出ました。 このエラーについても教えて頂けますか? Traceback (most recent call last): File "/Users/user/search_youtube_videos.py", line 12, in <module> YOUTUBE_API_KEY = os.environ.get['YOUTUBE_API_KEY'] TypeError: 'method' object is not subscriptable
monmon2

2021/05/25 05:05

教えていただいたコードを参考にさせて頂き、エラー解消されました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問