mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-05 12:39:27 +02:00
Fixed #4: can now import artists and releases with a clean interface :party:
This commit is contained in:
parent
3ccb70d0a8
commit
aa80bd15fa
43 changed files with 1614 additions and 120 deletions
|
@ -4,21 +4,20 @@ from apiclient.discovery import build
|
|||
from apiclient.errors import HttpError
|
||||
from oauth2client.tools import argparser
|
||||
|
||||
from django.conf import settings
|
||||
from dynamic_preferences.registries import (
|
||||
global_preferences_registry as registry)
|
||||
|
||||
# Set DEVELOPER_KEY to the API key value from the APIs & auth > Registered apps
|
||||
# tab of
|
||||
# https://cloud.google.com/console
|
||||
# Please ensure that you have enabled the YouTube Data API for your project.
|
||||
DEVELOPER_KEY = settings.FUNKWHALE_PROVIDERS['youtube']['api_key']
|
||||
YOUTUBE_API_SERVICE_NAME = "youtube"
|
||||
YOUTUBE_API_VERSION = "v3"
|
||||
VIDEO_BASE_URL = 'https://www.youtube.com/watch?v={0}'
|
||||
|
||||
|
||||
def _do_search(query):
|
||||
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
|
||||
developerKey=DEVELOPER_KEY)
|
||||
manager = registry.manager()
|
||||
youtube = build(
|
||||
YOUTUBE_API_SERVICE_NAME,
|
||||
YOUTUBE_API_VERSION,
|
||||
developerKey=manager['providers_youtube__api_key'])
|
||||
|
||||
return youtube.search().list(
|
||||
q=query,
|
||||
|
@ -55,4 +54,33 @@ class Client(object):
|
|||
|
||||
return results
|
||||
|
||||
def to_funkwhale(self, result):
|
||||
"""
|
||||
We convert youtube results to something more generic.
|
||||
|
||||
{
|
||||
"id": "video id",
|
||||
"type": "youtube#video",
|
||||
"url": "https://www.youtube.com/watch?v=id",
|
||||
"description": "description",
|
||||
"channelId": "Channel id",
|
||||
"title": "Title",
|
||||
"channelTitle": "channel Title",
|
||||
"publishedAt": "2012-08-22T18:41:03.000Z",
|
||||
"cover": "http://coverurl"
|
||||
}
|
||||
"""
|
||||
return {
|
||||
'id': result['id']['videoId'],
|
||||
'url': 'https://www.youtube.com/watch?v={}'.format(
|
||||
result['id']['videoId']),
|
||||
'type': result['id']['kind'],
|
||||
'title': result['snippet']['title'],
|
||||
'description': result['snippet']['description'],
|
||||
'channelId': result['snippet']['channelId'],
|
||||
'channelTitle': result['snippet']['channelTitle'],
|
||||
'publishedAt': result['snippet']['publishedAt'],
|
||||
'cover': result['snippet']['thumbnails']['high']['url'],
|
||||
}
|
||||
|
||||
client = Client()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue