youtube-api-wrappers.hpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #pragma once
  2. #include "auth-youtube.hpp"
  3. #include <json11.hpp>
  4. #include <QString>
  5. struct ChannelDescription {
  6. QString id;
  7. QString title;
  8. };
  9. struct StreamDescription {
  10. QString id;
  11. QString name;
  12. QString title;
  13. };
  14. struct CategoryDescription {
  15. QString id;
  16. QString title;
  17. };
  18. struct BroadcastDescription {
  19. QString id;
  20. QString title;
  21. QString description;
  22. QString privacy;
  23. CategoryDescription category;
  24. QString latency;
  25. bool made_for_kids;
  26. bool auto_start;
  27. bool auto_stop;
  28. bool dvr;
  29. bool schedul_for_later;
  30. QString schedul_date_time;
  31. QString projection;
  32. };
  33. bool IsYouTubeService(const std::string &service);
  34. class YoutubeApiWrappers : public YoutubeAuth {
  35. Q_OBJECT
  36. bool TryInsertCommand(const char *url, const char *content_type,
  37. std::string request_type, const char *data,
  38. json11::Json &ret, long *error_code = nullptr);
  39. bool UpdateAccessToken();
  40. bool InsertCommand(const char *url, const char *content_type,
  41. std::string request_type, const char *data,
  42. json11::Json &ret);
  43. public:
  44. YoutubeApiWrappers(const Def &d);
  45. bool GetChannelDescription(ChannelDescription &channel_description);
  46. bool InsertBroadcast(BroadcastDescription &broadcast);
  47. bool InsertStream(StreamDescription &stream);
  48. bool BindStream(const QString broadcast_id, const QString stream_id);
  49. bool GetBroadcastsList(json11::Json &json_out, const QString &page,
  50. const QString &status);
  51. bool
  52. GetVideoCategoriesList(QVector<CategoryDescription> &category_list_out);
  53. bool SetVideoCategory(const QString &video_id,
  54. const QString &video_title,
  55. const QString &video_description,
  56. const QString &categorie_id);
  57. bool StartBroadcast(const QString &broadcast_id);
  58. bool StopBroadcast(const QString &broadcast_id);
  59. bool ResetBroadcast(const QString &broadcast_id);
  60. bool StartLatestBroadcast();
  61. bool StopLatestBroadcast();
  62. void SetBroadcastId(QString &broadcast_id);
  63. bool FindBroadcast(const QString &id, json11::Json &json_out);
  64. bool FindStream(const QString &id, json11::Json &json_out);
  65. QString GetLastError() { return lastErrorMessage; };
  66. bool GetTranslatedError(QString &error_message);
  67. private:
  68. QString broadcast_id;
  69. int lastError;
  70. QString lastErrorMessage;
  71. QString lastErrorReason;
  72. };