Giter VIP home page Giter VIP logo

kaltura / server Goto Github PK

View Code? Open in Web Editor NEW
366.0 96.0 174.0 310.84 MB

The Kaltura Platform Backend. To install Kaltura, visit the install packages repository.

Home Page: https://github.com/kaltura/platform-install-packages

License: GNU Affero General Public License v3.0

PHP 84.92% HTML 3.58% JavaScript 9.56% CSS 1.25% Python 0.14% Makefile 0.01% Shell 0.10% XSLT 0.23% PowerShell 0.01% Java 0.06% Hack 0.16%
video video-platform kaltura-platform php kaltura-ce ovp kaltura-cluster online-video media-management media-library

server's Introduction

Kaltura Backend Core project

Kaltura is the world's first Open Source Online Video Platform, transforming the way people work, learn, and entertain using online video. The Kaltura platform empowers media applications with advanced video management, publishing, and monetization tools that increase their reach and monetization and simplify their video operations. Kaltura improves productivity and interaction among millions of employees by providing enterprises powerful online video tools for boosting internal knowledge sharing, training, and collaboration, and for more effective marketing. Kaltura offers next generation learning for millions of students and teachers by providing educational institutions disruptive online video solutions for improved teaching, learning, and increased engagement across campuses and beyond. For more information visit: http://corp.kaltura.com and http://www.kaltura.org.

Commercial Editions and Paid Support

The Open Source Kaltura Platform is provided under the AGPLv3 license and with no commercial support or liability.  

Kaltura Inc. also provides commercial solutions and services including pro-active platform monitoring, applications, SLA, 24/7 support and professional services. If you're looking for a commercially supported video platform  with integrations to commercial encoders, streaming servers, eCDN, DRM and more - Start a Free Trial of the Kaltura.com Hosted Platform or learn more about Kaltura' Commercial OnPrem Edition™. For existing RPM based users, Kaltura offers commercial upgrade options.

How you can help

Thank you for running Kaltura and pushing the limits of online video! By joining the Kaltura community and contributing you will help grow the platform, and keeping it open, stable and accessible to all.

You can contribute meaningfully to the project from day one:

To make a contribution, follow the See our CONTRIBUTORS doc

Contact the authors or email [email protected] if you have other ideas.

Documentation and Guides

License and Copyright Information

All code in this project is released under the AGPLv3 license unless a different license for a particular library is specified in the applicable library path.

Copyright © Kaltura Inc. All rights reserved.

server's People

Contributors

amiras89 avatar amirch1 avatar amirhalfon1 avatar anatolkaltura avatar assafb avatar avichainoach avatar blitzkrig1o1 avatar danbar0kal avatar david-winder-kaltura avatar drorsou avatar erankor avatar etameran avatar gotlieb avatar hilak avatar inbal-ben-david avatar michalradwantzor avatar moshemaorkaltura avatar nadav-ravid avatar nadavharnik avatar noam-arad avatar olampert avatar ravitshalem avatar rkreich avatar roiebeck avatar salma2222 avatar sharonadar avatar shpini avatar taldubovkaltura avatar yossipapi avatar zurphp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

server's Issues

The kaltura admin console (user) shouldn't have user creation limit.

We are making some tests with the version IX-9.14, and we have found that only 3 admins can be created at the admin_console. When you try to create a fourth, the page only reloads and does nothing else (not even a single error message).

This is the message that appears in the log:
2014-04-30 11:03:55 [0.001356] [127.0.0.1] [1941109940] [API] [kCoreException->__construct] ERR: exception 'kUserException' in /opt/kaltura/app/alpha/lib/model/UserLoginDataPeer.php:528

The problem is that UserLoginDataPeer.php calls "$partner->getAdminLoginUsersQuota()", which in turn invokes "BasePartner::getFromCustomData()" (BasePartner.php:3254) which tries to retrieve the value of "admin_login_users_quota" from the table "kaltura.partner". The user Admin Console (id=-2) doesn't own that property, so the function uses the default value, 3. I think this quota should only be present for publishers, not system administrators.

sshpass path should be settable via batch.ini

app/infra/storage/file_transfer_managers/sftpMgr.class.php:
private $sshpassCmd = 'sshpass';

Should default to KBatchBase::$taskConfig->params->sshpassCmd like for say params.ffmpegCmd.

This is important because:

In /etc/rc.d/init.d/functions we have:
PATH="/sbin:/usr/sbin:/bin:/usr/bin"

  • export PATH

    so in /etc/init.d/httpd:

    Source function library.

    . /etc/rc.d/init.d/functions

Meaning if my sshpass is under /opt/kaltura/bin it will fail.

UserService ID issues

So multiple issues here:

1 - Calling the list action with a KalturaUserFilter, that filters by a specific ID as follows:

$filter = new KalturaUserFilter();
$filter->idEqual = '[email protected]';
$users = $sourcePartnerClient->user->listAction($filter, null);

The filter is completely ignored, and it also returns users of other partners (which is rather worrying) ... please note that this is K9 behavior. Same thing on a K6 API works like a charm.

2 - The id property of the KalturaUser objects being returned have the same value of the screenName property. Thus one is unable to read the ids of a given list of users.

3 - The get action of the user service accepts a UserId, according to the documentation it's of type string so I figured ok passing the email address would get me the user. It does get me a user but not the correct one ... basically it returns always the same result regardless what you pass in as a parameter.

4 - Then I wanted to update a user via the API, the documentation says that the first parameter userId is string so I though ok the email again. But the response was Invalid user id.

Would really appreciate some support on this as it stands the user service on K9 is barely useable.

DeliveryProfile's URL instead of Entry's baseUrl

I think when the entry uses a custom delivery profile, it should use the delivery's url attribute, instead of its own baseUrl.

As a test, I'm creating a livestream entry (MANUAL) and leaving the baseUrl (in the test console, streamUrl) empty. The protocol used is RTMP. Kaltura is creating a manifest with the field "baseUrl" = "rtmp://" instead of my DeliveryProfile's URL.

KMC / Preview&Embed Window does not show player the first time (FIREFOX)

Running Firefox 31.0 / Win 7 / Latest Kaltura CE has been installed
In "content/entries"-section -> Click on "Select Action/Preview & Embed".
Expected behaviour: Flash-Player opens
How its is: Flash Player doesnt open; when changing Options (e.g. embedType) player opens

The reason why it doesnt open is a security error as shown in attached images below.
firebug1
firebug2

Partner/Publisher Urls

You can set custom urls per partner for delivery, cdn and stats. These urls don't seem to get reflected in LocalSettings.php. One hack I've done to LocalSettings.php is to change ...

$wgKalturaServiceUrl = wgGetUrl('cdn_api_host');

to

$wgKalturaServiceUrl = 'http://'.$_SERVER['HTTP_HOST'];

which will get the host of the request which seems to fix the partner urls using the standard embed method. But, using the share plugin, the embed url generates code that doesn't honor partner urls in the source code. I think the problem is in this file ...

./app/alpha/apps/kaltura/modules/extwidget/templates/previewSuccess.php

<meta property="og:video" content="<?php echo $swfSecureUrl; ?>" />

that variable doesn't seem to contain the custom partner url.

Would it be possible to honor partner urls wherever they can be used? That way you can have one media server with many partners, the data hosted up on a cdn like Amazon S3 Cloudfront, and the urls only give away "partner" urls.

9.17.0 to 9.18.0 Upgrade breaks HTTP Progressive playback

This problem was first found in the migration from 9.16.0 - 9.17.0.

It was resolved by running:
php %{prefix}/app/deployment/updates/update.php -i -d >> /opt/kaltura/log/kalt_up.log 2>&1
php %{prefix}/app/deployment/updates/update.php -i -s >> /opt/kaltura/log/kalt_up.log 2>&1

Which, until now, we did not do but instead, we ran the scripts desribed in the deployment instructions as IT Prod. do.

I since changed that at the recommendation of T. which, as mentioned worked for the migration to 9.17.

However, it was reintroduced in the 9.18.0 migration, not always, cause otherwise I would have caught on to it, but it happened to
2 users which is enough to investigate and afterwards, I was able to reproduce too.

Two issues seem unclear to me:
0. If the script run successfully as part of update.php on 9.17.0, why was the table recreated in 9.18.0 and not populated? Notice
we do run with -d first and only then with -s. It should have been skipped since it was marked as 'ran' during 9.17.0, no?

1, For the 9.17.0 migration, since 2014_05_27_create_delivery_profiles.php DID show in the deployment instructions, I did ran it,
and still, only after running a second time did it populate the delivery_profile table.

Can't login to admin console

I'm having this error when logging in to the Admin Console:
An error occurred

(error code: Server:INVALID_KS)

Thes is the kaltlog output:
[root@backend web]# kaltlog
==> /opt/kaltura/log/kaltura_apache_errors.log <==
[Tue Nov 04 19:22:26 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 19:28:18 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 19:33:50 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 19:38:52 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 19:53:30 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 19:56:34 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list
[Tue Nov 04 20:03:57 2014] [error] [client 10.100.2.34] File does not exist: /opt/kaltura/app/alpha/web/opt, referer: http://backend.nvod.com/admin_console/index.php/partner/list

2014-11-04 20:06:00 [0.000536] [127.0.0.1] [2101607047] [PS2] [sfView->initialize] INFO: {sfView} initialize view for "kmc/kmc"
2014-11-04 20:06:00 [0.000829] [127.0.0.1] [2101607047] [PS2] [sfPHPView->renderFile] INFO: {sfView} render "/opt/kaltura/app/alpha/apps/kaltura/modules/kmc/templates/kmcSuccess.php"
2014-11-04 20:06:00 [0.000584] [127.0.0.1] [2101607047] [PS2] [sfPHPView->decorate] INFO: {sfView} decorate content with "/opt/kaltura/app/alpha/apps/kaltura/templates/kmclayout.php"
2014-11-04 20:06:00 [0.000094] [127.0.0.1] [2101607047] [PS2] [sfPHPView->renderFile] INFO: {sfView} render "/opt/kaltura/app/alpha/apps/kaltura/templates/kmclayout.php"

2014-11-04 20:06:00 [0.000460] [127.0.0.1] [2101607047] [PS2] [sfRenderingFilter->execute] INFO: {sfFilter} render to client

2014-11-04 18:53:22 [1205813164] [addPermissionsAndItems.php] [addItemToPermissions] ALERT: exception 'Exception' with message 'ERROR - Permission name [BATCH_BASE] for partner [0] not found in database - skipping!' in /opt/kaltura/app/infra/log/KalturaLog.php:64
Stack trace:
#0 /opt/kaltura/app/alpha/scripts/utils/permissions/addPermissionsAndItems.php(280): KalturaLog::alert('ERROR - Permiss...')

I have been uninstalling and reinstalling kaltura for like 5 times now, I'm removing the DB, removing SQL, removing /opt/kaltura, same issue.

This is the third Kaltura CE server I test, each of the installations bumped into different issues and I spent each time around 3-4 days just to install it.

Force KMC HTTPS, permission selection logic

On our new Kaltura IX server I disabled Force KMC Https for our partner 102. However this did not have the intended effect. After doing some debugging I found the following lines in the PermissionPeer class (kmc module):

$permission = self::getByNameAndPartner($permissionName, array($partnerId, PartnerPeer::GLOBAL_PARTNER));

This includes the global partner (0) in the scanned permissions. However, in the getByNameAndPartner class the following sorting criteria is applied:

$c->addAscendingOrderByColumn(PermissionPeer::STATUS);

This in effect says: Always select Permission:ACTIVE over Permission:Blocked or Permission: Deleted. This way Active settings of the PartnerPeer::GLOBAL_PARTNER always prevail over partner specific settings. Is this intended behavior? And if it is, how do you change partner specific permissions?

I would suggest to add a second order column on partnerid, descending. This makes sure concrete partner rules are read first, while not breaking the multiple permissions case.

permission issue

Playback / Delivery from Remote storage fails

Hi,
I wrote a plugin to export the uploaded file to another server. The export works pretty good. But when trying to play the file, I get Media Not found error.
Kaltlog shows errors about Delivery id can't be determined for Storage id 3 and streamerType rtmp.
I am sure rtmp is no where in the settings I made. I tried overriding streamerType from 'auto' to 'http' in the xml file but no change. ( Changes made as per kaltura/platform-install-packages#102 (comment) )
Plus, I also noticed that while creating the delivery profile, the delivery profile ids section is blank. Any clues on what values should go here.
I am working on 9.18.0.
I started working on this right when the Url Managers were being phased out and have not been able to get to any documents about the new Delivery Profile flow.
Thank you for your time.

How to set S3 & Cloudfront (AWS)

I try use kaltura for RTMP streaming with Amazon Cloudfront.
But, if I set my aws-account-information, don't work syncing of contents and pablishing
Please tell me how to set external-strage(S3).
If I have to run some batches, pleace tell me that.

By the way, Latest stable release is IX-9.2.1 ??
I use installer (Branch IX-9.2.1) to build ,and work server (Branch IX-9.2.1).

Thank you.

※Sorry,,I'm not good in English.
kaltura_s3_settings
kaltura_s3_settings_ext

unicode issues with Python Client

I'm currently working this issue, but wanted to get help if it's available.

When setting tags with unicode characters on a mediaEntry, the API will throw an encoding exception when adding the mediaEntry:

Traceback (most recent call last):
  File "KalturaClient/tests/test_media.py", line 50, in test_set_UTF8_tags
    mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId)
  File "KalturaClient/Plugins/Core.py", line 41492, in addFromUploadedFile
    kparams.addObjectIfDefined("mediaEntry", mediaEntry)
  File "KalturaClient/Base.py", line 106, in addObjectIfDefined
    self.add(key, obj.toParams().get())
  File "KalturaClient/Plugins/Core.py", line 8712, in toParams
    kparams = KalturaPlayableEntry.toParams(self)
  File "KalturaClient/Plugins/Core.py", line 8500, in toParams
    kparams = KalturaBaseEntry.toParams(self)
  File "KalturaClient/Plugins/Core.py", line 5080, in toParams
    kparams.addStringIfDefined("tags", self.tags)
  File "KalturaClient/Base.py", line 122, in addStringIfDefined
    self.put(key, value)
  File "KalturaClient/Base.py", line 91, in put
    self.params[key] = str(value)
  UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

I've checked in a failing test case under my own pinned repo of a generated Python API here: https://github.com/RadioFreeAsia/Kaltura_API_Python/blob/master/KalturaClient/tests/test_media.py

The test case is KalturaClient.tests.test_media.MediaTests.test_set_UTF8_tags

I have no resolution yet, but I'm working on it. Hints and help is appreciated!

No feedback in Admin Console when feature is disabled

In a feature is disabled in the Partner Configuration, the attempt to create a profile (virusscan/dropfolder/etc) throws a server error, but does not display any feedback in the admin console.

I would recommend to do this the other way around: dont throw an error, but a warning, and display this as message to the Admin user.

Removing files after upload to remote storage

So, I have files uploading to Amazon S3/Cloudfront. And, my settings is remote first, delete after upload. But, the post-conversion media seems to be staying on the server. The batch process cron job is running. Any other job need to run to make this cleanup happen? Thanks.

Unicode Improperly Truncated during bulk upload - Makes XML reply not well formed

we just uploaded a bunch of media entries via CSV file from the KMC.
One of these entries has "Bad Content" - the Title is over 256 bytes.
The Title is also in unicode.

When the Title is truncated to 256 Bytes, the truncation happens in the middle of a unicode character.

Here's the CSV entry:

  • title,description,url,contentType,category
    "លទ្ធផលរបាយការណ៍ពីស្ថានភាពសិទ្ធិមនុស្សកម្ពុជាក្នុងសន្និសីទនៃអង្គការសហប្រជាជាតិ (វគ្គ បញ្ចប់)-H100114RSV3-WED","",http://url.to/thevideo.mp4,video,"Khmer>1",,,,,,,

The resulting KalturaMediaListResponse contains:

<name>\xe1\x9e\x9b\xe1\x9e\x91\xe1\x9f\x92\xe1\x9e\x92\xe1\x9e\x95\xe1\x9e\x9b\xe1\x9e\x9a\xe1\x9e\x94\xe1\x9e\xb6\xe1\x9e\x99\xe1\x9e\x80\xe1\x9e\xb6\xe1\x9e\x9a\xe1\x9e\x8e\xe1\x9f\x8d\xe1\x9e\x96\xe1\x9e\xb8\xe1\x9e\x9f\xe1\x9f\x92\xe1\x9e\x90\xe1\x9e\xb6\xe1\x9e\x93\xe1\x9e\x97\xe1\x9e\xb6\xe1\x9e\x96\xe1\x9e\x9f\xe1\x9e\xb7\xe1\x9e\x91\xe1\x9f\x92\xe1\x9e\x92\xe1\x9e\xb7\xe1\x9e\x98\xe1\x9e\x93\xe1\x9e\xbb\xe1\x9e\x9f\xe1\x9f\x92\xe1\x9e\x9f\xe1\x9e\x80\xe1\x9e\x98\xe1\x9f\x92\xe1\x9e\x96\xe1\x9e\xbb\xe1\x9e\x87\xe1\x9e\xb6\xe1\x9e\x80\xe1\x9f\x92\xe1\x9e\x93\xe1\x9e\xbb\xe1\x9e\x84\xe1\x9e\x9f\xe1\x9e\x93\xe1\x9f\x92\xe1\x9e\x93\xe1\x9e\xb7\xe1\x9e\x9f\xe1\x9e\xb8\xe1\x9e\x91\xe1\x9e\x93\xe1\x9f\x83\xe1\x9e\xa2\xe1\x9e\x84\xe1\x9f\x92\xe1\x9e\x82\xe1\x9e\x80\xe1\x9e\xb6\xe1\x9e\x9a\xe1\x9e\x9f\xe1\x9e\xa0\xe1\x9e\x94\xe1\x9f\x92\xe1\x9e\x9a\xe1\x9e\x87\xe1\x9e\xb6\xe1\x9e\x87\xe1\x9e\xb6\xe1\x9e\x8f\xe1\x9e\xb7 (\xe1\x9e\x9c\xe1\x9e\x82\xe1\x9f\x92\xe1\x9e\x82 \xe1\x9e\x94\xe1\x9e\x89\xe1\x9f\x92\xe1</name>

Specifically the Python API, this will cause an exception:

File "KalturaClient/Client.py", line 290, in parsePostResult
    resultXml = minidom.parseString(postResult)
KalturaClientException: not well-formed (invalid token)

It's because \xe1 signals a continuation character, the unicode parser (correctly) eats the '<' character as the continuation, and the XML parser is left with '/name> to parse, which results in invalid XML.

The best solution would be to a unicode-safe truncation during bulk upload operations: Don't truncate based on byte-length only - make sure a complete unicode character is left at the end of the string after truncation.

However, I can also throw a quick hack into the Python API: utf8-decode the XML, ignore errors, and then pass that to minidom for XML parsing.

See this similar situation here: http://stackoverflow.com/questions/8719330/python-utf-8-xml-parsing-suds-removing-invalid-token/8719445

[BUG]Delivery ID can't be determined

The following error occurs on a freshly installed 9.19.5. I guess this has something to do with the new Delivery profile functionality?

2014-11-03 10:15:24 [0.002936] [82.157.231.6] [974498316] [PS2] [DeliveryProfilePeer::getDeliveryByPartner] ERR: exception 'Exception' with message 'Delivery ID can't be determined for partnerId [101] streamer type [http] and media protocol [https]' in /opt/kaltura/app/infra/log/KalturaLog.php:82
Stack trace:
#0 /opt/kaltura/app/alpha/lib/model/DeliveryProfilePeer.php(210): KalturaLog::err('Delivery ID can...')
#1 /opt/kaltura/app/alpha/lib/model/DeliveryProfilePeer.php(159): DeliveryProfilePeer::getDeliveryByPartner(Object(Partner), 'http', 'https', 'platform.vixyvi...', false)
#2 /opt/kaltura/app/alpha/apps/kaltura/modules/extwidget/actions/playManifestAction.class.php(660): DeliveryProfilePeer::getLocalDeliveryByPartner('0_6ywq594w', 'http', 'https', 'platform.vixyvi...')
#3 /opt/kaltura/app/alpha/apps/kaltura/modules/extwidget/actions/playManifestAction.class.php(711): playManifestAction->initDeliveryProfile()
#4 /opt/kaltura/app/alpha/apps/kaltura/modules/extwidget/actions/playManifestAction.class.php(911): playManifestAction->serveVodEntry()
#5 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(905): playManifestAction->execute()
#6 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfExecutionFilter->execute(Object(sfFilterChain))
#7 /opt/kaltura/app/vendor/symfony/filter/sfFlashFilter.class.php(50): sfFilterChain->execute()
#8 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfFlashFilter->execute(Object(sfFilterChain))
#9 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(830): sfFilterChain->execute()
#10 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfCommonFilter->execute(Object(sfFilterChain))
#11 /opt/kaltura/app/alpha/apps/kaltura/lib/filter/myHealthCheckAndSecurityFilter.class.php(65): sfFilterChain->execute()
#12 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): myHealthCheckAndSecurityFilter->execute(Object(sfFilterChain))
#13 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(974): sfFilterChain->execute()
#14 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfRenderingFilter->execute(Object(sfFilterChain))
#15 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(576): sfFilterChain->execute()
#16 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(2228): sfController->forward('extwidget', 'playManifest')
#17 /opt/kaltura/app/alpha/bootstrap.php(28): sfFrontWebController->dispatch()
#18 /opt/kaltura/app/alpha/web/index.php(246): require_once('/opt/kaltura/ap...')
#19 {main}

2014-11-03 10:15:24 [0.000798] [82.157.231.6] [974498316] [PS2] [KExternalErrors::dieError] ERR: exception 'Exception' with message 'exiting on error 25 - wrong query attributes, This format is unsupported' in /opt/kaltura/app/infra/log/KalturaLog.php:82
Stack trace:
#0 /opt/kaltura/app/alpha/apps/kaltura/lib/KExternalErrors.class.php(115): KalturaLog::err('exiting on erro...')
#1 /opt/kaltura/app/alpha/apps/kaltura/modules/extwidget/actions/playManifestAction.class.php(925): KExternalErrors::dieError(25, 'This format is ...')
#2 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(905): playManifestAction->execute()
#3 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfExecutionFilter->execute(Object(sfFilterChain))
#4 /opt/kaltura/app/vendor/symfony/filter/sfFlashFilter.class.php(50): sfFilterChain->execute()
#5 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfFlashFilter->execute(Object(sfFilterChain))
#6 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(830): sfFilterChain->execute()
#7 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfCommonFilter->execute(Object(sfFilterChain))
#8 /opt/kaltura/app/alpha/apps/kaltura/lib/filter/myHealthCheckAndSecurityFilter.class.php(65): sfFilterChain->execute()
#9 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): myHealthCheckAndSecurityFilter->execute(Object(sfFilterChain))
#10 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(974): sfFilterChain->execute()
#11 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(1006): sfRenderingFilter->execute(Object(sfFilterChain))
#12 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(576): sfFilterChain->execute()
#13 /opt/kaltura/app/cache/alpha/kaltura/prod/config/config_core_compile.yml.php(2228): sfController->forward('extwidget', 'playManifest')
#14 /opt/kaltura/app/alpha/bootstrap.php(28): sfFrontWebController->dispatch()
#15 /opt/kaltura/app/alpha/web/index.php(246): require_once('/opt/kaltura/ap...')
#16 {main}

The Playlist service update method is running an insert statement

It would seem that the Playlist service update method is running an insert statement of the same entry, after having successfully updated the playlist. Below is the stack trace leading to the database error:

*/ INSERT INTO entry (ID,NAME,TYPE,MEDIA_TYPE,DATA,TAGS,STATUS,CREATED_AT,UPDATED_AT,DISPLAY_IN_SEARCH,CUSTOM_DATA,DESCRIPTION,MODERATION_STATUS,MODERATION_COUNT,MODIFIED_AT,ACCESS_CONTROL_ID,AVAILABLE_FROM) VALUES ('0_22urvzjr','Playlist Update Test','5','10','100000.xml','','4','2014-10-30 13:52:52','2014-11-04 15:03:30','1','a:3:{s:16:"partnerSortValue";i:0;s:21:"entitledUserPuserEdit";s:6:"a:0:{}";s:24:"entitledUserPuserPublish";s:6:"a:0:{}";}','The latest releases','6','0','2014-11-04 15:08:43','2000083','2014-10-30 13:52:52')
2014-11-04 15:08:43 [0.000773] [192.168.8.170] [1585533160] [API] [BasePeer::doInsert] ERR: exception 'Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0_22urvzjr' for key 'PRIMARY'' in /opt/kaltura/app/infra/log/KalturaLog.php:82
Stack trace:
#0 /opt/kaltura/app/vendor/propel/Propel.php(408): KalturaLog::err('SQLSTATE[23000]...')
#1 /opt/kaltura/app/vendor/propel/util/BasePeer.php(298): Propel::log('SQLSTATE[23000]...', 3)
#2 /opt/kaltura/app/alpha/lib/model/om/BaseentryPeer.php(2354): BasePeer::doInsert(Object(Criteria), Object(KalturaPDO))
#3 /opt/kaltura/app/alpha/lib/model/om/Baseentry.php(3237): BaseentryPeer::doInsert(Object(entry), Object(KalturaPDO))
#4 /opt/kaltura/app/alpha/lib/model/om/Baseentry.php(3122): Baseentry->doSave(Object(KalturaPDO))
#5 /opt/kaltura/app/alpha/lib/model/entry.php(281): Baseentry->save(NULL)
#6 /opt/kaltura/app/alpha/lib/model/entry.php(985): entry->save()
#7 [internal function]: entry->setDataContent('<?xml version="...')
#8 /opt/kaltura/app/api_v3/lib/types/KalturaObject.php(382): call_user_func_array(Array, Array)
#9 /opt/kaltura/app/api_v3/lib/types/entry/KalturaBaseEntry.php(398): KalturaObject->toObject(Object(entry), Array)
#10 /opt/kaltura/app/api_v3/lib/types/entry/KalturaPlaylist.php(113): KalturaBaseEntry->toObject(Object(entry))
#11 /opt/kaltura/app/api_v3/services/PlaylistService.php(153): KalturaPlaylist->toObject(NULL)
#12 [internal function]: PlaylistService->updateAction('0_22urvzjr', Object(KalturaPlaylist), false)
#13 /opt/kaltura/app/api_v3/lib/KalturaActionReflector.php(233): call_user_func_array(Array, Array)
#14 /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php(117): KalturaActionReflector->invoke(Array)
#15 /opt/kaltura/app/api_v3/lib/KalturaFrontController.php(111): KalturaDispatcher->dispatch('playlist', 'update', Array)
#16 /opt/kaltura/app/api_v3/web/index.php(20): KalturaFrontController->run()
#17 {main}

Information Request: Batch Processing

This is simply a request for more detailed information of transcoding / batch processing workflow.

Server Spec's
CentOS 6.4 64-bit
16gb DDR2 ECC Ram
1tb x4 Raid mirror system / OS storage
5tb sas storage
2x Intel Xeon quad-core @3.0ghz CPU's


Request:
I'm looking to lower the amount of system resources being consumed during batch queue processing (transcoding)

Scenario:
Add 10 video files in mp4 format to dropbox
Transcoding / batch processor innitiates
System resources allocated to ffmpeg skyrocket. almost all free CPU time and memory become allocated to ffmpeg task(s)

This is a severe issue as it causes the system to become so congested that the webserver, webapps, ssh, rsync, heartbeat, and many other mission critical applications become non-responsive.

While not transcoding (when batch processor queue is empty) The system behaves normally. Content delivery resumes to normal without any issue.


i guess what i'de like to know, is if there's a way to limit the transcoding processes to utelize a certain percentage of free resources.. i.e. if 8gb of the 16gb is free && if 70% of cpu cores 1 - 8 are free, utelize 4gb of ram, and 50% of free CPU resources to transcode.. thus leaving enough resources available for critical system services.


Wordpress UI Conf's don't get loaded?

Perhaps i'm missing something somewhere,but i can't for the life of me get either the new (2.5) or old (2.4.4) wordpress plugins to work.. After looking a bit deeper, it appears that while the ui_conf's are there, they aren't in the database, so what do i need to do to reload the ui_conf's so that the wordpress plugin will work?

Update livestream scheduling is not working as expected.

Updating a livestream scheduling (startDate and endDate) via de test_console and rewriting those values to "-1" (send -1 to remove) is not working. It returns the present date.

<xml>
<result>
[...]
<endDate>1405081977</endDate>

After some debugging, I found that the KalturaRequestDeserializer class runs a method called buildObject(), which in turn runs castSimpleType(), which is the method changing the value:

$value = $this->castSimpleType($type, $value);

Clean install outputs drop folder error when no drop folder is created yet

If there is no drop folder defined yet, the Drop Folder outputs an error checking for a file that does not exist. Advice to add a check in the DropFolder batch worker to check if there are actually drop folders.

[19:24:22] David Bezemer: 2014-02-15 19:10:49 [26669225] [KDropFolderFileTransferEngine->validatePhysicalFile] NOTICE: Validating physical file [.]
2014-02-15 19:10:49 [26669225] [KDropFolderFileTransferEngine->validatePhysicalFile] ERR: File name is not set

Listing deleted categories not working

I am using the API to list any deleted categories of a partner using the following code:

$deleteCategoriesFilter = new KalturaCategoryFilter();
$deleteCategoriesFilter->statusIn = KalturaCategoryStatus::DELETED . "," . KalturaCategoryStatus::PURGED;
$deletedCategories = $sourcePartnerClient->category->listAction($deleteCategoriesFilter, null);

I can see in the database in the categories table there are records with status 4 (purged) ... why aren't these records retrieved by the API?

Thanks

Placing the Java API in a Maven repository

It would be enormously helpful to me, and presumably other Java developers, if you would place the Java API in a Maven repository. I have written some Kaltura code that I have placed in GitHub. I would like to use Maven to manage the build process and NOT require that the Java API be downloaded and compiled separately.

Let me know if the API already exists in a repository that I am not aware of.

Thanks

Python Unittest Failure (code from PythonTester.py)

Hi. I'm back causing trouble again! Please don't hate me :)

https://github.com/flipmcf/Kaltura_API_Python/issues/3 documents the question / issue well.

Please see the 3.1.6-flip branch - which is still based off of the 30-06-2013 code

The object was to migrate "PythonTester.py" to a unittest framework and maintain better test coverage of the Python API - before I merge in the newest changes (20-08-2013)

When disecting PythonTester.py into unit tests, certain failures occur where you wouldn't expect them to fail.
(great way to learn the code too!)

If I can have one more set of eyes on this (with more experience than I) I would appreciate it!

Error Messages

Is there a way to change

CLIP_NOT_FOUND

message? It takes some time to get the video up to the remote cdn (Amazon S3). I guess I could use remote storage first, but it would be nice to customize some of the error messages per publisher or on the fly.

Force the flavorAsset->listAction to give all statuses

I would like to list the flavour assets of an entry using

$filter = new KalturaFlavorAssetFilter();
$filter->entryIdEqual = $entry->id;
$flavourAssets = $sourcePartnerClient->flavorAsset->listAction($filter, null);

But this return only assets with status ready(2) ... is it possible to have it return all statuses?

Thanks

Thumbnails and remote storage

It seems that picking custom thumbnails don't work when you have remote storage? I get this error:

"An error occurred while trying to capture thumbnail."

and in the log I see:

2014-03-25 10:58:56 [0.001075] [107.1.61.90] [1417170580] [API] [KalturaFrontController->getExceptionObject] ERR: exception 'KalturaAPIException' with message 'The source file is remote, no local file found' in /opt/kaltura/app/api_v3/services/ThumbAssetService.php:647

Is there a way to do this?

no file transfer manager for openstack object storage

Using the s3 file transfer manager is it possible to upload all content directly to and serve out of s3? Is the video content cached or otherwise proxied or delivered directly to the client via HTTP byte range requests?

Is there any plans to create a similar file transfer manager for openstack object storage (swift)?

Python API: ImportError: No module named poster.streaminghttp

I'm not sure when this started happening, but probably came about on the last update.

Look at KalturaClient/poster/init.py

I think:

import poster.streaminghttp
import poster.encode

should be

import streaminghttp
import encode

Or, I've fixed it first by doing a pip install poster right next to my KalturaClient package, which placed it properly in the path - but I think that's wrong.

Unauthorized domain notification on mobile devices, but content does play

Hi,

I've applied Access control (1 allowed domain 'mydomain.com') to my content.

• When I try to access the playlist from outside 'mydomain.com' I get the unauthorized domain notification (and rightfully so of course). So that's working.

• When I try to access the playlist from 'mydomain.com' from PC's (IE, Chrome, Firefox) they play without the unauthorized domain notification. So fine as well.

• But when I try to access the playlist from 'mydomain.com' from an iPad, Android Phone, WP8 the player shows me the unauthorized domain notification which is not correct. When I select the second video from the playlist the PLAY buttons appears and I can play all content, even though unauthorized domain notification remains visible. On WP8 the notification disappears once I resize the player or switch to full screen.

20-10-2014 11-09-41

Any ideas?
Thanks, Ron

Kaltlog output below. Nothing was added there during the request

[2014-10-16 14:44:27]failed to connect [1] [0.00037908554077148] mysql:host=127.0.0.1;port=3306;dbname=kaltura_sphinx_log;
PHP Fatal error: Uncaught exception 'PropelException' with message 'Unable to open PDO connection dsn[mysql:host=127.0.0.1;port=3306;dbname=kaltura_sphinx_log;] user[kaltura] password[0rVjQhMAAw9UuG0] [wrapped: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 111]' in /opt/kaltura/app/vendor/propel/Propel.php:649
Stack trace:
#0 /opt/kaltura/app/vendor/propel/Propel.php(532): Propel::initConnection(Array, 'sphinx_log')

==> /opt/kaltura/log/kaltura_scripts.log <==
2014-10-20 10:00:04 [953079441] [updateEntryPlaysViews.php] [global] ERR: exception 'Exception' with message 'Couldn't find entry [0_q11rz8dt]' in /opt/kaltura/app/infra/log/KalturaLog.php:82
Stack trace:
#0 /opt/kaltura/app/alpha/scripts/dwh/updateEntryPlaysViews.php(19): KalturaLog::err('Couldn't find e...')

Python API: Can't pickle NotImplemented Type

I've worked around this very lazily in rfa.kaltura - just deleting any attributes with the NotImplemented value. We save the KalturaMediaEntry (KalturaObject) with the Plone Archetype to keep the reference with KMC content, which requires pickling (serializing) the object.

I'm thinking an easy fix would be to add a __getstate__ and __setstate__ to the class, which parses __dict__ and changes any attributes with the value NotImplemented some pickleable type (say, the string "NotImplemented"), and vice versa.

Any thoughts?

You can re-create it with this:

import pickle
....
mediaEntry = client.media.addFromUploadedFile(mediaEntry, uploadTokenId)
pickled = pickle.dumps(mediaEntry)
*** TypeError: can't pickle NotImplementedType objects

Reset KMC user passwd from KMC does not act correctly

Hey,

Please see here:
kaltura/platform-install-packages#210

" from KMC, you can go to 'Settings' and 'My user settings' and then 'Change KMC passwd', this does have a bug where, when trying the right passwd and then the new one, it says the old passwd is incorrect, however, it is correct and, in fact, the passwd is correctly set to the new one."

It is not an API issue, seems entirely front. I consulted with Atar and it seems this particular code is maintained by the Front team.

kManifestRenderers.php and M3U8 files

I have a working Wowza server, delivering RTMP and HLS videos to my users. I've configured kaltura so it can build the URLs correctly, i.e. making a remote storage profile with the Delivery Details of my server, and an additional "URL manager param" called "hls_pattern" to prepend the usual "playlist.m3u8" to my http connections.
After uploading and encoding some videos, I've seen that RTMP works perfectly, but HLS fails when we try to play those videos on mobile devices, even when the URLs are being well builded.
The tests I've made to try this have made me realize that you cannot call a "Master playlist" from another "Master Playlist"* (the playManifestAction with the format "applehttp" generates a "Master Playlist" m3u8)
So I think the process the file kManifestRenderers.php** does when you output a m3u8 file should be different.

* Specification of HLS, and the Master Playlist calling another Master Playlist issue read from here: http://tools.ietf.org/html/draft-pantos-http-live-streaming-13#section-6.3.1

** server/alpha/apps/kaltura/lib/kManifestRenderers.php

Adding source flavour asset via API remains in uploading status.

I am creating an entry and its flavor assets via the API ... however the source asset seems to be getting stuck in uploading status.

image

In batch process control I can see this but not sure how to interpret it:

image

Any pointers would be very appreciated. Thanks

Convert breaks when a semicolon is in additional params

When creating a flavor with a ; in teh additional params the resulting flavor is broken due to the MILTI_COMMAND_LINE_SEPERATOR in batch/batches/Convert/Engines/KConversionEngine.class.php

a semicolon in the additional params should be passed onto ffmpeg, for instance for hardcoded watermarks. The API allows entering of semicolons, but the convert jobs breaks on it.
example additional params that break:

-vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.